我刚刚在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连接的用户和密码?
答案 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');"