如何将root密码设置为null

Sto*_*dow 63 mysql mysql-management

如何从MySQL命令行客户端更改rootMySQL用户的密码null- 意味着没有密码或''- ?

Sta*_*nov 87

为我和"5.7.11 MySQL社区服务器"工作:

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
Run Code Online (Sandbox Code Playgroud)

我不得不更改'plugin'字段,因为它被设置为'auth_socket'.

之后,我可以mysql -u root没有密码连接.

  • `plugin ='mysql_native_password'`对我来说是关键. (16认同)
  • 之后我也需要做"冲洗特权". (10认同)
  • 谢谢你在5.17工作,你需要在使用此方法后重启mysql以查看更改的影响.`sudo service mysql restart` (3认同)

use*_*141 55

如果您想要一个空密码,您应该将密码设置为null,而不是使用密码哈希函数,如下所示:

在命令行上:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot
Run Code Online (Sandbox Code Playgroud)

在MySQL中:

use mysql;
update user set password=null where User='root';
flush privileges;
quit;
Run Code Online (Sandbox Code Playgroud)

  • 错误代码:1048.列'密码'不能为空 (10认同)
  • `update user set password='' where User='root';` 适用于 MySQL 5.6 (2认同)

bsd*_*bsd 52

  • 以root用户身份连接到mysql(使用以下两种方法之一)
    • 以root身份登录并使用启动mysql mysql -p,输入当前root密码
    • 以self身份登录并启动mysql mysql -u root -p,输入当前root密码
  • mysql> set password = password('');

完成!没有root密码.


kta*_*kta 20

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
Run Code Online (Sandbox Code Playgroud)

  • 现在不推荐使用`SET PASSWORD FOR'root'@'localhost'='';`代替. (4认同)

小智 14

这对我来说在Ubuntu 16.04上使用v5.7.15 MySQL:

首先,确保安装了mysql-client(sudo apt-get install mysql-client).

打开终端并登录:

mysql -uroot -p
Run Code Online (Sandbox Code Playgroud)

(然后输入密码)

之后:

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
Run Code Online (Sandbox Code Playgroud)

(tnx @Stanislav Karakhanov)

最后一件重要的事情是重置mysql服务:

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

您现在应该能够使用MySQL Workbench登录(没有密码).

  • 令我感到困惑的是,有多少种方法可以设置root密码.在此解决方案出现之前,他们都没有在我的MySql 5.7.16上工作.谢谢. (4认同)

Vla*_*sny 13

您可以通过以下五个简单步骤恢复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
Run Code Online (Sandbox Code Playgroud)

输出:

Stopping MySQL database server: mysqld.
Run Code Online (Sandbox Code Playgroud)

步骤#2:启动没有密码的MySQL服务器:

# mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)

输出:

[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
Run Code Online (Sandbox Code Playgroud)

步骤#3:使用mysql客户端连接到mysql服务器:

# mysql -u root
Run Code Online (Sandbox Code Playgroud)

输出:

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>
Run Code Online (Sandbox Code Playgroud)

步骤#4:设置新的MySQL root用户密码

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
Run Code Online (Sandbox Code Playgroud)

步骤#5:停止MySQL服务器:

# /etc/init.d/mysql stop
Run Code Online (Sandbox Code Playgroud)

输出:

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
Run Code Online (Sandbox Code Playgroud)

步骤#6:启动MySQL服务器并测试它

# /etc/init.d/mysql start
# mysql      
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 
# mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.cyberciti.biz/tips/recover-mysql-root-password.html

  • 此链接实际上并没有告诉您如何将其设置为null,这是原始帖子的内容. (18认同)
  • @DimitryK在较新的版本中,`password`列是`authentication_string`. (5认同)
  • 第1步和第2步不是必需的(问题并不是说以前的密码丢失或遗忘),第4步是错误的,因为问题是如何设置空密码,应该是`update user set password = PASSWORD( '')其中User ='root';`如果使用MySQL 5.5.46或更新,`更新用户设置密码= null其中User ='root';`如果使用旧版本. (3认同)

小智 5

mysql直接编辑数据库不是一个好主意。

我喜欢以下步骤:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; 
mysql> flush privileges;
Run Code Online (Sandbox Code Playgroud)


小智 5

对于MySQL 8.0而言:

SET PASSWORD FOR 'root'@'localhost' = '';


bit*_*xyz 5

这是来自 MySQL 8.0.13 的:

use mysql;

update user set authentication_string=null  where user='root';

quit;
Run Code Online (Sandbox Code Playgroud)