2014-03-02 1 views
0

Я создал пользователя в Google Cloud SQL. Когда я использую сторонний инструмент администратора mysql, я могу подключиться с помощью учетной записи non root. Однако, в моей учетной записи движка приложения, я не могу этого сделать. Я не уверен, почему. Я попробовал следующие соединительные строки:appengine не может подключиться к облаку Google Cloud без пользователя ROOT

db = MySQLdb.connect(unix_socket='/cloudsql/' + SQL_INSTANCE, user='username', db='dbname') 
db = MySQLdb.connect(host='x.x.x.x', port=3306, user='username', passwd="passwd") 

Ничего из них не работает.

+0

Какая ошибка у вас? Можете ли вы также проверить, что использование «SHOW GRANTS FOR username @ localhost», чтобы увидеть разрешения, верны. –

+0

из приложения двигателя, я получаю: 'супер (подключение, самость) .__ инициализации __ (* арг ** kwargs2) OperationalError: (1044, " Доступ запрещен для пользователя 'mtogether @ 'локальный' в базе данных" ******* '") ' Команда show grants сообщает« GRANT USAGE ON *. * TO' user '@' localhost 'IDENTIFIED BY PASSWORD * * ---------- ------ ' ' – user2773013

ответ

2

SHOW GRANTS должен указывать, что ваш пользователь имеет доступ к этой таблице. Недостаточно разрешения для использования конкретной базы данных.

Я смог правильно подключиться с использованием определенного пользователя и пароля. MySQLdb.connect я был так:

db = MySQLdb.connect(
     unix_socket='/cloudsql/XXXXXXX', 
     user='test', passwd='test') 

Я добавил пользователя, как это:

mysql> GRANT ALL ON `%`.* TO [email protected] IDENTIFIED BY 'test'; 
Query OK, 0 rows affected (0.19 sec) 

Как гранты выглядеть:

mysql> SHOW GRANTS FOR [email protected]; 
+-------------------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]                     | 
+-------------------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' | 
| GRANT ALL PRIVILEGES ON `%`.* TO 'test'@'localhost'               | 
+-------------------------------------------------------------------------------------------------------------+ 
2 rows in set (0.11 sec) 

mysql> 

Я надеюсь, что это помогает.