我在Google Cloud SQL中创建了一个用户。当我使用第三方mysql管理工具时,我可以使用非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 :(得分:2)
SHOW GRANTS
应表明您的用户有权访问该表。 USAGE权限不足以使用特定数据库。
我能够使用特定的用户和密码正确连接。我使用的MySQLdb.connect
是这样的:
db = MySQLdb.connect(
unix_socket='/cloudsql/XXXXXXX',
user='test', passwd='test')
我添加了这样的用户:
mysql> GRANT ALL ON `%`.* TO test@localhost IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.19 sec)
赠款如何:
mysql> SHOW GRANTS FOR test@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for test@localhost |
+-------------------------------------------------------------------------------------------------------------+
| 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>
我希望这会有所帮助。