標籤:重設mysql root密碼 linux
Linux平台:
1、首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地串連MySQL資料庫。
因為在重新設定MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的
狀態下,其他的使用者也可以任意地登入和修改MySQL的資訊。可以採用將MySQL對
外的連接埠封閉,並且停止Apache以及所有的使用者進程的方法實現伺服器的准安全
狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。
2、修改MySQL的登入設定:
# vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
儲存並且退出。
3、重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4、登入並修改MySQL的root密碼
# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the buffer.
mysql> 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> UPDATE user SET Password = password ( ‘newpassword‘ ) WHERE User = ‘root‘;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5、將MySQL的登入設定修改回來
# vim /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
儲存並且退出vi。
6、重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
7、恢複伺服器的正常工作狀態
在[mysqld]的段中刪除剛才添加的:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
儲存並且退出。
FreeBSD平台
FreeBSD上,啟動指令碼的路徑和和linux有所不同
另外,預設不存在my.cnf檔案
修改root密碼的方法如下:
首先停止當前mysql
/usr/local/etc/rc.d/mysql-server.sh stop
然後用skip-grant-table的方式啟動mysql
執行/usr/local/bin/safe_mysqld --user=mysql --datadir=/var/db/mysql --skip-grant-table &
這個時候登陸mysql將處於無驗證的狀態了
後續操作同Linux平台上的操作方法。
Windows平台
首先停止mysql的服務
修改my.ini檔案,位置D:\hosting\System\mysql\bin\my.ini
在[mysqld]的段中加上一句:skip-grant-tables
啟動mysql服務,修改密碼的sql語句與linux平台一樣
本文出自 “廣州、雨人” 部落格,請務必保留此出處http://liulihuan.blog.51cto.com/8018739/1641755
重設MYSQL 中root 密碼