如何从MySQL命令行客户端更改root
MySQL用户的密码null
- 意味着没有密码或''
- ?
为我和"5.7.11 MySQL社区服务器"工作:
use mysql; update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
我不得不更改'plugin'字段,因为它被设置为'auth_socket'.
之后,我可以mysql -u root
没有密码连接.
如果您想要一个空密码,您应该将密码设置为null,而不是使用密码哈希函数,如下所示:
在命令行上:
sudo service mysql stop sudo mysqld_safe --skip-grant-tables --skip-networking & mysql -uroot
在MySQL中:
use mysql; update user set password=null where User='root'; flush privileges; quit;
以root用户身份连接到mysql(使用以下两种方法之一)
以root身份登录并使用启动mysql mysql -p
,输入当前root密码
以self身份登录并启动mysql mysql -u root -p
,输入当前root密码
mysql> set password = password('');
完成!没有root密码.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
这对我来说在Ubuntu 16.04上使用v5.7.15 MySQL:
首先,确保安装了mysql-client(sudo apt-get install mysql-client
).
打开终端并登录:
mysql -uroot -p
(然后输入密码)
之后:
use mysql; update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
(tnx @Stanislav Karakhanov)
最后一件重要的事情是重置mysql服务:
sudo service mysql restart
您现在应该能够使用MySQL Workbench登录(没有密码).
您可以通过以下五个简单步骤恢复MySQL数据库服务器密码.
步骤#1:停止MySQL服务器进程.
步骤#2:使用--skip-grant-tables选项启动MySQL(mysqld)服务器/守护程序进程,以便它不会提示输入密码.
步骤#3:以root用户身份连接到mysql服务器.
步骤#4:设置新的mysql root帐户密码即重置mysql密码.
步骤#5:退出并重启MySQL服务器.
以下是您需要为每个步骤键入的命令(以root用户身份登录):
第一步:停止mysql服务
# /etc/init.d/mysql stop
输出:
Stopping MySQL database server: mysqld.
步骤#2:启动没有密码的MySQL服务器:
# mysqld_safe --skip-grant-tables &
输出:
[1] 5988 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[6025]: started
步骤#3:使用mysql客户端连接到mysql服务器:
# mysql -u root
输出:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
步骤#4:设置新的MySQL root用户密码
mysql> use mysql; mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; mysql> flush privileges; mysql> quit
步骤#5:停止MySQL服务器:
# /etc/init.d/mysql stop
输出:
Stopping MySQL database server: mysqld STOPPING server from pid file /var/run/mysqld/mysqld.pid mysqld_safe[6186]: ended [1]+ Done mysqld_safe --skip-grant-tables
步骤#6:启动MySQL服务器并测试它
# /etc/init.d/mysql start # mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) # mysql -u root -p
资料来源:http://www.cyberciti.biz/tips/recover-mysql-root-password.html
mysql
直接编辑数据库不是一个好主意。
我喜欢以下步骤:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; mysql> flush privileges;
对于MySQL 8.0而言:
SET PASSWORD FOR 'root'@'localhost' = '';