如果你忘记了MySQL数据库的root密码,那就按本文介绍在Ubuntu 18.04/Ubuntu 16.04系统中重置MySQL root密码,本文介绍的方法适用于在任何Linux服务器上运行的任何MySQL版本。其中设置root帐户请参考在ubuntu18.04下安装mysql后设置root账户的方法一文。
一、停止mysql服务 在重置密码之前,需要停止mysql服务并以安全模式启动守护程序: $ sudo systemctl stop mysql 对于CentOS 7服务器,将mysql替换为mysqld作为服务名称: $ sudo systemctl stop mysqld
二、使用mysqld_safe启动MySQL服务 服务停止后,运行命令mysqld_safe,它会添加一些安全功能,例如在发生错误时重新启动服务器并将运行时信息记录到错误日志中: $ sudo mysqld_safe --skip-grant-tables & [1] 32595 2019-02-23T07:14:43.206936Z mysqld_safe Logging to syslog. 2019-02-23T07:14:43.213306Z mysqld_safe Logging to '/var/log/mysql/error.log'. 190223 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, 2018, 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 对于任何其他用户,请使用以下syntax重置密码: [mysql]> update user set password=PASSWORD("password") where User='username'; 要获取系统中所有用户的列表,请使用: SELECT User, Host, Password FROM mysql.user; 然后使用提供的用户名和密码连接到MySQL数据库。
相关主题 |