如何设置root密码为空

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

您可以通过以下五个简单步骤恢复MySQL数据库服务器密码。

步骤1 :停止MySQL服务器进程。

步骤2 :使用–skip-grant-tables选项启动MySQL(mysqld)服务器/守护进程,以便它不会提示input密码。

第三步 :以root用户身份连接到mysql服务器。

步骤#4 :设置新的MySQL帐户密码,即重置mysql密码。

第五步 :退出并重新启动MySQL服务器。

以下是您需要为每个步骤键入的命令(以root用户身份login):

步骤1 :停止mysql服务

 # /etc/init.d/mysql stop 

输出:

 Stopping MySQL database server: mysqld. 

步骤#2 :启动到MySQL服务器W / O密码:

 # 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> 

第四步 :设置新的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服务器并testing它

 # /etc/init.d/mysql start # mysql -u root -p 

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

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

在命令行上:

 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身份login并使用mysql -p启动mysql,input当前的root密码
    • login为自己并使用mysql -u root -p启动mysql,input当前的root密码
  • mysql> set password = password('');

完成! 没有root密码。

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

 use mysql; update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'; 

我不得不改变'插件'字段,因为它被设置为'auth_socket'。

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

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

这对我在Ubuntu 16.04 v5.7.15 MySQL的工作:

首先,确保你已经安装了mysql-client( sudo apt-get install mysql-client )。

打开terminal并login:

 mysql -uroot -p 

(然后input你的密码)

之后:

 use mysql; update user set authentication_string=password(''), plugin='mysql_native_password' where user='root'; 

(tnx @Stanislav Karakhanov)

而最后一个重要的是重置mysql服务

 sudo service mysql restart 

您现在应该也可以通过使用MySQL Workbenchlogin(不使用密码)。

user64141的答案

 use mysql; update user set password=null where User='root'; flush privileges; quit; 

在MariaDB 10.1.5中不适合我(应该是MySQL的替代品)。 虽然没有在MySQL 5.6中testing过,看是否是上游的变化,我得到的错误是:

错误1048(23000):列'密码'不能为空

但用空的单引号或双引号replacenull工作正常。

 update user set password='' where User='root'; 

要么

 update user set password="" where User='root'; 

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

我更喜欢以下步骤:

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ''; mysql> flush privileges; 

如果你知道你的根密码,只是想重置它,然后做如下:

  • 从控制面板>pipe理工具>服务启动MySQL服务。 (只有当它早些时候被你阻止了!否则,就跳过这一步)

  • 启动MySQL Workbench

  • 键入这个命令/ SQL行

    ALTER USER'root'@'localhost'PASSWORD EXPIRE;

要重置任何其他用户密码,只需键入其他用户名而不是root。