【问题标题】:Acess denied for user (mysql and flask)用户访问被拒绝(mysql和flask)
【发布时间】:2021-02-08 14:09:37
【问题描述】:

我正在尝试连接到 Flask 中的 MySQL 数据库,如下所示:

mysql = MySQL()
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DATABASE_DB'] = 'myDB'
mysql.init_app(app)

我收到以下错误:

pymysql.err.OperationalError: (1045, "Access denied for user 'myusername'@'localhost' (using password: NO)")

我尝试重新安装 XAMPP,但无济于事。 我有 2 个问题:

  1. 为什么我收到的错误是“myusername”而不是“root”?
  2. 我该如何解决这个问题?

解决方案: 我需要为 MySQL 中的特定用户@localhost 授予正确的权限。

【问题讨论】:

  • 你有权限吗
  • 许可是什么意思?使用 GRANT ALL PRIVILEGES ON myDB.* TO 'root'@'localhost'; 授予 root 用户访问 myDB 的权限。如果是这样,是的。

标签: python mysql flask


【解决方案1】:

默认情况下,XAMPP root 用户没有密码,您可以按照以下步骤创建一个新用户:

  1. 在 XAMPP 控制面板上单击 MySQL 旁边的 Admin 以调出 phpMyAdmin。
  2. 选择左侧的mysql数据库。
  3. 然后,选择顶部的 SQL 选项卡并运行以下语句: SET Password=PASSWORD('password');

但是,我强烈建议创建一个新用户:

CREATE USER 'myuser'@'%' IDENTIFIED BY 'password';
CREATE DATABASE myDB;
GRANT ALL PRIVILEGES ON myDB.* TO 'myuser'@'localhost';

【讨论】:

  • 我已经使用 SET Password=PASSWORD('password'); 为 root 添加了密码SQL 语句。我还尝试像上面的错误一样创建一个名为“myusername@localhost”的新用户,但没有成功。
  • 你能运行pip freeze,还有你有什么版本的XAMPP?
  • XAMPP 版本 8.0.1。我没有从 pip freeze 获得这些信息。 pip freeze的结果是:click==7.1.2 Flask==1.1.2 Flask-MySQL==1.5.2 itsdangerous==1.1.0 Jinja2==2.11.3 MarkupSafe==1.1.1 pkg-resources== 0.0.0 PyMySQL==1.0.2 Werkzeug==1.0.1
猜你喜欢
  • 2017-07-19
  • 2019-01-24
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 2013-08-22
  • 2011-08-18
相关资源
最近更新 更多