【问题标题】:MYSQL: "Access denied for user 'X'@'localhost' (using password: YES)" PYTHONMYSQL:“用户'X'@'localhost'的访问被拒绝(使用密码:YES)”PYTHON
【发布时间】:2017-03-06 03:55:31
【问题描述】:

我正在尝试使用 python 访问数据库,但它无法正常工作。当我访问远程数据库时,一切都很好。但是本地存在某种问题。我在这里做什么?我尝试了一些我在 intener 上找到的东西确实授予访问权限,但它们不起作用

本地用户:

使用的代码:

收到消息

感谢您的帮助

【问题讨论】:

  • 你读过related question吗? - 给定的答案似乎也适用于您的问题(如果我正确解释了您的 phpmyadmin 屏幕截图)
  • 对不起!使困惑!​​!您尝试访问的数据库是(本地,即与代码在同一台机器上)还是按照您的建议(远程,即在另一台机器上)????
  • 旁注 授予该用户All Privilages 似乎是OverKill。仅授予应用所需的内容,并且仅授予应用所需的数据库
  • 我已经尝试编辑用户.. 我排除了匿名用户并将主机更改为 '127.0.0.1'、'localhost'、'%'、'192.168.0.116'(我的本地ip)但它不起作用..这里的每一个细节都是本地的。我删除了所有权限,只允许“数据”命令。
  • 还有..这是MAMP的MySQL

标签: python mysql python-2.7 mysql-python


【解决方案1】:

经过几个小时的测试,我终于发现了问题所在!在对 mysql 用户进行了一些更改后,当我将 PORT 添加到 mysql 数据库时,一切正常!

db = MySQLdb.connect(host="127.0.0.1",user="userpython",passwd="root",db="bigdata",port=8886)

【讨论】:

    【解决方案2】:

    添加端口号对我不起作用。当授予运行 python 脚本的 os 用户权限时。

    sudo mysql -u root -h localhost -p
    grant all privileges on database_name.* to 'os_user'@'localhost' identified by 
    'password' with grant option;
    

    【讨论】:

    • 你的解决方案对我不起作用 - 我有什么需要改变的吗/
    【解决方案3】:

    MySQLdb.connect() 函数中缺少端口号。

    【讨论】:

      【解决方案4】:

      确保您已正确添加所有参数, 确认有效的用户名和密码。 示例如下:

      db = MySQLdb.connect(
      host="localhost",
      user="username",
      password="password",
      database="database_name",
      )
      

      【讨论】:

        猜你喜欢
        • 2016-06-21
        • 1970-01-01
        • 2016-07-11
        • 2013-05-07
        • 2019-06-20
        • 2015-06-27
        相关资源
        最近更新 更多