mysql root 修改密碼的多種方法

starive發表於2014-11-24

mysql root 修改密碼的多種方法




如果root密碼沒有丟失


方法1: 用SET PASSWORD命令


  mysql -u root -p登陸
輸入密碼:

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

如果root沒有設定密碼
shell> mysqladmin -u root password "newpass"


如果root已經設定密碼:
shell> mysqladmin -u root password oldpass "newpass"   ????有問題


方法3: 用UPDATE直接編輯user表

  mysql -u root -p
輸入密碼:

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;


如果root密碼丟失


在丟失root密碼的時候,可以這樣

.修改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密碼 
# /usr/bin/mysql 
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 ( 'new-password' ) 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的登入設定修改回來 
# vi /etc/my.cnf 
將剛才在[mysqld]的段中加上的skip-grant-tables刪除 
儲存並且退出vi。 

6.重新啟動mysqld 
# /etc/init.d/mysqld restart 
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26435490/viewspace-1344207/,如需轉載,請註明出處,否則將追究法律責任。

相關文章