Linux下MySQL的root密碼忘記解決方案
驗證環境:
[root@localhost ~]# rpm -qa | grep mysql
mysql-5.1.71-1.el6.i686
mysql-server-5.1.71-1.el6.i686
mysql-libs-5.1.71-1.el6.i686
[root@localhost ~]# lsb_release -a
LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS Linux release 6.0 (Final)
Release: 6.0
Codename: Final
[root@localhost ~]# uname -r
2.6.32-71.el6.i686
1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地串連MySQL資料庫。
因為在重新設定MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的狀態下,其他的使用者也可以任意地登入和修改MySQL的資訊。可以採用將MySQL對外的連接埠封閉,並且停止Apache以及所有的使用者進程的方法實現伺服器的准安全狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。
2.修改MySQL的登入設定:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
儲存並且退出vi。
3.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登入並修改MySQL的root密碼
[root@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \\g.
Your MySQL connection id is 3
Server version: 5.1.71 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.
mysql>UPDATE mysql.user SET Password = password ("new-password") WHERE User = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> exit
Bye
5.將MySQL的登入設定修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除,儲存並且退出vi;
6.再次重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
7、使用新的密碼登入,正常登入,搞定!
Windows/Linux MySQL忘記root密碼的解決方案
MySQL忘記root密碼解決方案
MySQL 更改root密碼
在Ubuntu中如何重設MySQL伺服器的root密碼
Red Hat 下 MySQL root密碼恢複