【问题标题】:ProgrammingError: 1698 (28000): Access denied for user 'root'@'localhost when using mysql.connector in pythonProgrammingError: 1698 (28000): Access denied for user 'root'@'localhost when using mysql.connector in python
【发布时间】:2021-02-15 21:57:31
【问题描述】:

在我的 linux mint 20 cinnamon 上,我使用 sudo apt install mariadb 安装了 mariadb。而当我想在终端连接mysql时,我只需运行sudo ystemctl start mariadb 并使用sudo mysql -u root无密码连接,一切正常。 但是当我尝试在 vscode 中使用这个 python 脚本进行连接时,我得到了标题中提到的错误:

import mysql.connector

cnx = mysql.connector.connect(user='root', password='',
                              host='127.0.0.1',
                              database='test')
cnx.close()

我没有为任何东西设置任何密码。为什么现在不给我访问权限? 相信我,当我说我没有做任何事情时!我实际上只是安装了 mariadb,我唯一做的就是创建测试数据库和表 people

【问题讨论】:

  • 嗯。那是奇怪的行为。在第一次安装时创建的一些分发随机密码(即使您没有手动设置)。试试看grep -i password /var/log/mysqld.log

标签: python mysql mysql-connector-python


【解决方案1】:
  1. https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

使用此链接并创建一个用户,然后您可以尝试在此脚本中设置用户名和密码,您将能够连接它。

  1. 对于root用户,您必须通过ALter用户角色设置密码并在脚本中设置相同的密码,您将能够连接mysql。

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 2021-12-30
    • 2022-12-01
    • 2015-03-20
    相关资源
    最近更新 更多