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: 【輸出本來的暗碼】