如何在Ubuntu 18.04/Ubuntu 16.04上重置MySQL根密码
时间:2020-02-23 14:32:14 来源:igfitidea点击:
由于某些原因,我们可能忘记了MySQL的root密码,需要重新设置。请按照本教程在Ubuntu 18.04或者16.04服务器上重置MySQL根密码。本教程适用于在任何Linux服务器上运行的MySQL的任何版本。
停止mysql服务
在重置密码之前,我们需要停止mysql服务并以安全模式启动守护程序:
$sudo systemctl stop mysql
对于CentOS 7服务器,将mysqld替换为mysqld作为服务名称:
$sudo systemctl stop mysqld
使用mysqld_safe启动MySQL服务
服务停止后,运行命令mysqld_safe,它添加了一些安全功能,例如在发生错误时重新启动服务器,以及将运行时信息记录到错误日志中。
$sudo mysqld_safe --skip-grant-tables & [1] 32595 2016-06-26T07:14:43.206936Z mysqld_safe Logging to syslog. 2016-06-26T07:14:43.213306Z mysqld_safe Logging to '/var/log/mysql/error.log'. 180626 07:20:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
重设MySQL root密码
使用没有密码的root用户登录MySQL:
$mysql -u root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8 Server version: 10.3.7-MariaDB-1:10.3.7+maria~bionic mariadb.org binary distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
切换到mysql数据库并重置root密码:
MySQL [(none)]> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MySQL [mysql]> update user set password=PASSWORD("newpassword") where User='root'; Query OK, 3 rows affected (0.000 sec) Rows matched: 3 Changed: 3 Warnings: 0 MySQL [mysql]> flush privileges; Query OK, 0 rows affected (0.001 sec) MySQL [mysql]> quit Bye
停止并启动MySQL服务
停止并启动mysql服务,以恢复正常的数据库操作。
sudo systemctl stop mysql sudo systemctl start mysql
对于其他任何用户,请使用以下语法重置密码:
[mysql]> update user set password=PASSWORD("password") where User='username';
要获取系统中所有用户的列表,请使用:
SELECT User, Host, Password FROM mysql.user;
使用提供的用户名和密码连接到MySQL数据库。