首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PythonAnywhere - Mysql错误: 1044 (42000):访问被拒绝

PythonAnywhere - Mysql错误: 1044 (42000):访问被拒绝
EN

Stack Overflow用户
提问于 2017-09-09 05:58:10
回答 1查看 2.6K关注 0票数 1

我正在尝试用PythonAnywhere在线托管一个Python/Mysql项目。当我尝试使用以下命令连接到数据库时:(主机和密码明显更改)

代码语言:javascript
复制
conn = mysql.connector.connect(host='host',user="BobbyQ",password='password',db='mm-database')

我得到了这个错误:

代码语言:javascript
复制
mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'BobbyQ'@'%' to database 'mm-database'

如果我从Mysql控制台运行SHOW GRANTS,我会得到这样的结果:

代码语言:javascript
复制
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'@'%'                                 |
+------------------------------------------------------------------------------------------------+

我现在应该能够连接到数据库,但是我不知道为什么我不能。我该如何解决呢?

EN

回答 1

Stack Overflow用户

发布于 2021-07-31 04:58:58

使用sudo user连接到数据库(在终端中)并创建newuser

代码语言:javascript
复制
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';

然后使用以下命令转到mysql数据库:

代码语言:javascript
复制
USE MYSQL

并使用以下命令授予用户(newuser)所有访问权限:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

写入所需数据库的名称而不是database_name,并写入所需的用户名而不是username

最后:

代码语言:javascript
复制
FLUSH PRIVILEGES;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46125041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档