摘要:下創(chuàng)建新用戶新數(shù)據(jù)庫設(shè)定訪問權(quán)限控制都需要用到密碼。萬一把密碼忘了,該怎么辦幸運地是,重設(shè)密碼很容易。基本的思路是,以安全模式啟動,這樣不需要密碼可以直接以身份登錄,然后重設(shè)密碼。以安全模式啟動注意我們加了,避免遠程無密碼登錄。
MySQL下創(chuàng)建新用戶、新數(shù)據(jù)庫、設(shè)定訪問權(quán)限控制都需要用到root密碼。萬一把root密碼忘了,該怎么辦?
幸運地是,重設(shè)密碼很容易。
注意:MySQL的root用戶和服務器操作系統(tǒng)的root用戶是兩個不同的用戶,不要搞混了。
基本的思路是,以安全模式啟動mysql,這樣不需要密碼可以直接以root身份登錄,然后重設(shè)密碼。
首先,我們停掉MySQL服務:
sudo service mysql stop
以上命令適用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替換mysql。
以安全模式啟動mysql:
sudo mysqld_safe --skip-grant-tables --skip-networking &
注意我們加了--skip-networking,避免遠程無密碼登錄MySQL。(感謝 RobberPhex指出。)
這樣我們就可以直接用root登錄,無需密碼:
mysql -u root
接著重設(shè)密碼:
mysql> use mysql; mysql> update user set password=PASSWORD("mynewpassword") where User="root"; mysql> flush privileges;
注意,命令后需要加分號。
重設(shè)完畢后,我們退出,然后啟動mysql服務:
mysql > quit
quit不需要分號。
重啟服務:
sudo service mysql restart
同樣,以上命令適用于Ubuntu和Debian,Centos、Fedora和RHEL需要用mysqld替換mysql。
現(xiàn)在可以嘗試用新密碼登錄了:
mysql -u root -pmynewpassword
注意,-p和密碼間不能有空格。
其他方案以上是通用方案,在Ubuntu和Debian系統(tǒng)上,有一個debian-sys-maint用戶,Debian類系統(tǒng)下一些系統(tǒng)腳本對mysql的操作是通過這個用戶完成的。所以我們可以通過這個用戶來修改root密碼。該用戶的密碼可以在/etc/mysql/debian.cnf下找到:
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = PASSWORD socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = PASSWORD socket = /var/run/mysqld/mysqld.sock basedir = /usr
用該用戶登錄mysql后,也可以修改密碼(具體修改過程見上):
sudo mysql -u debian-sys-maint -p
撰文 SegmentFault
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/7904.html
閱讀 3510·2021-11-25 09:43
閱讀 1266·2021-09-08 09:45
閱讀 2643·2021-09-07 09:59
閱讀 1502·2021-08-09 13:45
閱讀 3339·2019-08-30 15:54
閱讀 696·2019-08-29 18:35
閱讀 513·2019-08-29 17:18
閱讀 992·2019-08-29 14:10