我正在尝试用PythonAnywhere在线托管一个Python/Mysql项目。当我尝试使用以下命令连接到数据库时:(主机和密码明显更改)
conn = mysql.connector.connect(host='host',user="BobbyQ",password='password',db='mm-database')我得到了这个错误:
mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'BobbyQ'@'%' to database 'mm-database'如果我从Mysql控制台运行SHOW GRANTS,我会得到这样的结果:
mysql> SHOW GRANTS;
+------------------------------------------------------------------------------------------------+
| Grants for BobbyQ@% |
+------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'BobbyQ'@'%' IDENTIFIED BY PASSWORD <secret> WITH MAX_USER_CONNECTIONS 3 |
| GRANT ALL PRIVILEGES ON `BobbyQ$default`.* TO 'BobbyQ'@'%' |
| GRANT ALL PRIVILEGES ON `BobbyQ$mm-database`.* TO 'BobbyQ'@'%' |
+------------------------------------------------------------------------------------------------+我现在应该能够连接到数据库,但是我不知道为什么我不能。我该如何解决呢?
发布于 2021-07-31 04:58:58
使用sudo user连接到数据库(在终端中)并创建newuser
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';然后使用以下命令转到mysql数据库:
USE MYSQL并使用以下命令授予用户(newuser)所有访问权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';写入所需数据库的名称而不是database_name,并写入所需的用户名而不是username。
最后:
FLUSH PRIVILEGES;https://stackoverflow.com/questions/46125041
复制相似问题