程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> CentOS下重置MySQL的root暗碼的教程

CentOS下重置MySQL的root暗碼的教程

編輯:MySQL綜合教程

CentOS下重置MySQL的root暗碼的教程。本站提示廣大學習愛好者:(CentOS下重置MySQL的root暗碼的教程)文章只能為提供參考,不一定能成為您想要的結果。以下是CentOS下重置MySQL的root暗碼的教程正文


自己在CentOS6.4上裝置萬mysql後,沒法經由過程root進入,由於裝置的時刻,並沒有設置root暗碼,仿佛有個初始隨秘密碼,然則不記得了,太費事,直接重置root暗碼。
起首,你必需要有操作體系的root權限了。如果連絡統的root權限都沒有的話,先斟酌root體系再走上面的步調。

PS:付與用於root權限
辦法一: 修正 /etc/sudoers 文件,找到%wheel一行,把後面的正文(#)去失落

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

然後修正用戶,使其屬於root組(wheel),敕令以下:

#usermod -g root tommy

修正終了,如今可以用tommy帳號登錄,然後用敕令 sudo su - ,便可取得root權限停止操作。

辦法二: 修正 /etc/sudoers 文件,找到root一行,在root上面添加一行,以下所示:

## Allow root to run any commands anywhere
root ALL=(ALL)  ALL
tommy ALL=(ALL)  ALL

修正終了,如今可以用tommy帳號登錄,然後用敕令 sudo su - ,便可取得root權限停止操作。

辦法三: 修正 /etc/passwd 文件,找到以下行,把用戶ID修正為 0 ,以下所示:

tommy:x:500:500:tommy:/home/tommy:/bin/bash

修正後以下

tommy:x:0:500:tommy:/home/tommy:/bin/bash

保留,用tommy賬戶登錄後,直接獲得的就是root帳號的權限。


root下相似於平安形式登錄體系,有人建議說是pkill mysql,然則我不建議哈。由於當你履行了這個敕令後,會招致如許的狀態:

/etc/init.d/mysqld status
mysqld dead but subsys locked

如許即便你是在平安形式下啟動mysql都未必會有效的,所以普通是如許/etc/init.d/mysqld stop,假如你不幸先用了pkill,那末就start一下再stop咯。
應用rpm包裝置完mysql後,依照一下步調重置root暗碼:
啟動mysql:

#/etc/init.d/mysql start

啟動勝利後檢查mysql過程信息,獲得mysqld_safe的裝置目次(異常症結):

#ps -ef | grep -i mysql
root  3466  1 0 01:45 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/BSC.TEST.pid
mysql  3569 3466 16 01:45 pts/1 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/BSC.TEST.err --pid-file=/var/lib/mysql/BSC.TEST.pid
root  3597 3105 0 01:45 pts/1 00:00:00 grep -i mysql

可以看到mysqld_safe的裝置地位(下面標藍色部門):/usr/bin/
接著履行一下敕令停滯mysql:

/etc/init.d/mysql stop

以平安方法啟動mysql:

#/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &

稍等5秒鐘,然後履行以下語句:

#/usr/bin/mysql -u root mysql

留意:mysql與mysql_safe目次一樣,都是:/usr/bin/下,這個是經由過程“ps -ef | grep -i mysql”敕令獲得的。

湧現“mysql>”提醒符後輸出:

mysql> update user set password = Password('root') where User = 'root';

回車後履行(刷新MySQL體系權限相干的表):

mysql> flush privileges;

再履行exit加入:

mysql> exit;

加入後,應用以下敕令上岸mysql,嘗嘗能否勝利:

#mysql -u root -p 

按提醒輸出暗碼:

root

然則履行檢查數據庫敕令報錯:

mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

處理方法:

mysql> SET PASSWORD=PASSWORD('root');
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database   |
+--------------------+
| information_schema |
| mysql    |
| performance_schema |
| test    |
+--------------------+
4 rows in set (0.00 sec)

PS:假如在應用mysqladmin的話:

# mysqladmin -u root -p password "test123"
Enter password: 【輸出本來的暗碼】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved