我刚在Mac上安装了mySQL。安装似乎已成功。我可以从终端命令行成功启动和停止mySQL。我在python中尝试创建连接和游标,但收到以下错误消息:
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我达到这一点的代码非常简单:
import mysql.connector
cnx = mysql.connector.connect(user = 'root')
import语句执行时没有错误,但创建连接的命令给出了前面提到的错误。我已经浏览了所有关于这个主题的互联网问题,但没有一个能为我找到解决方案。这可能是密码问题。当我安装SQL时,我得到了一个密码,在SQL安装过程中我被告知我会被提示但是我没有被提示输入密码。我试图将密码作为连接配置参数的一部分包括在内,但是只是给出了以下错误消息:
cnx = mysql.connector.connect(user = 'root', password = 'supplied_pass')
mysql.connector.errors.DatabaseError: 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
任何有关解决此问题的帮助都将受到赞赏。
答案 0 :(得分:0)
我找到了解决方案。在SQL安装之后,必须执行安全安装,我重置密码并消除匿名用户。按照安全安装中的提示进行密码重置和匿名用户消除。原始安装位于/ usr / local / mysql /目录中。所以在终端提示符下我做了一个更改目录到/ usr / local / mysql /目录(cd / usr / local / mysql / bin /)。进入新目录后,我在终端提示符下键入了此命令:sudo ./mysql_secure_installation。此时我只是按照所有提示更改密码并取消匿名用户。一旦完成,我就能够成功创建SQL连接和游标。