1

我刚刚在 Mac OSX 上安装了 mysql,可以轻松地在 shell 中打开它并访问它附带的数据库和表。

现在我想使用 mysql-connector/python 在 Python 中创建一个数据库

在此之前,我认为在 mysql 中设置用户名和密码是明智的。

我尝试使用以下内容,但收到错误消息。我的目标是设置用户名和密码,以便我可以简单地将其提供给 mysql-connector for python,并最终从 python 环境执行 sql 查询。这是我在 mysql 命令提示符下尝试的内容:

为 'root'@'localhost' 设置密码 = PASSWORD('newpwd');

我收到错误消息:

错误 1044 (42000): 拒绝用户 ''@'localhost' 访问数据库 'mysql'

所以我尝试了更新方法:

UPDATE mysql.user SET Password = PASSWORD('newpwd') WHERE User = 'root';

我收到错误消息:

错误 1142 (42000): UPDATE 命令拒绝用户 ''@'localhost' 用于表 'user'

那么有谁知道我为什么被拒绝以及如何进行更改以创建我最终可能在 python 环境中的 mysql connect 中使用的用户和密码?

4

1 回答 1

1

听起来您的身份验证不正确。确保您已通过 root 用户身份验证

Access denied for user ''@'localhost' to database 'mysql' 应该看起来像

Access denied for user 'root'@'localhost' to database 'mysql'

否则,您不会以 root 身份登录,而是以匿名用户身份登录。

Ofc,当您使用 root 登录时,您不会收到该消息,但是对于任何没有适当权限的用户名,您都会收到该消息。

通过身份验证开始您的查询

mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME 

例子:

mysql --port=3307 --host=127.0.0.1 -u root --password=thisismypass test -e "LOAD DATA LOW_PRIORITY LOCAL INFILE '%pathuser%' INTO TABLE `user_log`...."

在你的情况下可能

 mysql -u root "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');"
于 2013-09-24T15:31:21.283 回答