GAE PHP не подключается к Cloud SQL

Кажется, не удается заставить GAE PHP подключиться к Cloud SQL с помощью mysqli, пишет: «Не удалось найти транспортный сокет «unix» — вы забыли включить его при настройке PHP?

Я авторизовал приложение и убедился, что они оба находятся в одном регионе, то есть в США.

любые идеи будут отличными, спасибо

$mysqli = new mysqli(null, "USERNAME", "PASSWORD", "DATABASE", null,
"/cloudsql/PROJECT_NAME:db2");

когда я использую :/cloudsql/PROJECT_NAME:db2, он говорит об ошибке с «sock»

Когда я использую /cloudsql/PROJECT_NAME:db2 без: он говорит, что не может подключиться к user@localhost


person Jason Gorman    schedule 20.02.2014    source источник
comment
пример кода поможет   -  person Stuart Langley    schedule 21.02.2014
comment
$mysqli = новый mysqli(null, ИМЯ ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ, БАЗА ДАННЫХ, null, /cloudsql/ИМЯ_ПРОЕКТА: db2);   -  person Jason Gorman    schedule 21.02.2014


Ответы (2)


Если вы используете аутентификацию по умолчанию, попробуйте использовать «root» в качестве имени пользователя, null в качестве пароля и идентификатор экземпляра, указанный на панели Cloud SQL, например. Пример:

$conn = new mysqli(null, "root", null, "<databasename>", null, "/cloudsql/<instance id>”);
person Gerry Pesavento    schedule 21.02.2014

В случае, если кто-то просматривает этот пост и получает «Невозможно найти транспорт сокета «unix»» (это был я) и использует PDO вместо sqli, вот правильный код.

$db = new pdo("mysql:unix_socket=/cloudsql/$GAE_ProjectName:$location:$dbInstance;dbname=$dbName",$username,$password)

Их, /cloudsql/$GAE_ProjectName:$location:$dbInstance, можно найти вместе и скопировать и вставить с панели управления вашего экземпляра SQL в разделе «Подключиться к этому экземпляру», а затем «Имя подключения экземпляра».

Остальное — просто определить эти переменные и убедиться, что пароли правильные!

person Daniel J. Dunevant    schedule 20.05.2019