mysql设置用户名和密码

时间:2013-09-24 15:26:22

标签: python mysql macos

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

现在我想使用mysql-connector / python

在Python中创建一个数据库

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

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

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

我收到错误消息:

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

所以我尝试了UPDATE METHOD:

UPDATE mysql.user SET Password = PASSWORD('newpwd')  用户='root';

我收到错误消息:

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

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

1 个答案:

答案 0 :(得分: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');"