我正在尝试使用命令行更新数据库用户的密码,但是没成功。这是我使用的代码:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
有人能告诉我这段代码哪里出了问题吗?
我正在尝试使用命令行更新数据库用户的密码,但是没成功。这是我使用的代码:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
有人能告诉我这段代码哪里出了问题吗?
在您的代码中,请尝试将密码放在单引号中。或者,根据mysql的文档,以下内容应该可以工作 -
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');
FLUSH PRIVILEGES;
最后一行非常重要,否则你的密码更改将不会生效,遗憾的是。
编辑:
我在本地进行了测试,它起作用了 -
mysql> set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)
我的版本是5。您可以使用以下命令确定您的版本 -
SHOW VARIABLES LIKE "%version%";
error near unexpected token ('
。请始终使用以下命令先登录MySQL(例如root):mysql -u root -p
。 - Florian Bauer5.7.18-0ubuntu0.16.04.1
。 - coding_idiotALTER USER
命令。示例:
ALTER USER 'username' IDENTIFIED BY 'password';
原因是:
SET PASSWORD ... = PASSWORD('auth_string')
语法自MySQL 5.7.6起被弃用,并将在未来的MySQL版本中被移除。
SET PASSWORD ... = 'auth_string'
语法尚未被弃用,但现在推荐使用ALTER USER
语句分配密码。
ALTER USER ... IDENTIFIED BY ...
是一个 SQL 语句,用于配置数据库用户权限。UPDATE
和 INSERT
具有不同的功能,正如它们的名称所示,可以更新记录并将记录插入到数据库表中。 - Govind RaiALTER...
是用于配置用户权限的。这很有道理。 - oldboyERROR 1064 (42000):您的SQL语法有误,请检查与您的MariaDB服务器版本相对应的手册,以获取正确的语法使用方式,接近于'USER 'root' IDENTIFIED BY
。 - Pavel Niedoba注意:您应该以root用户身份登录
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
这是针对WAMP v3.0.6的更新答案。
UPDATE mysql.user
SET authentication_string=PASSWORD('MyNewPass')
WHERE user='root';
FLUSH PRIVILEGES;
在MySQL 5.7.6之前,这个命令可以从命令行运行:
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"
我没有安装mysql以供测试,但我认为在您的情况下,应该是这样的
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
mysqladmin -u root password “newpassword”
其中root可以替换为任何用户。mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';
这对我有用。从MYSQL网页获得解决方案。
在MySQL中运行以下查询:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Query OK, 0 rows affected (0.01 sec)
sudo service mysql stop
sudo service mysql start
mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
mysql -u root -p
和密码 password
登录了。/usr/local/directadmin/conf/mysql.conf
。然后尝试以下操作。UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30';
FLUSH PRIVILEGES;
Host是你的MySQL主机。