Linux下修改MySQL的用戶(root)的密碼
阿新 • • 發佈:2019-01-21
ide 用戶登錄 test 表示 完成 pre admin def myql Linux下修改MySQL的用戶(root)的密碼
1 擁有舊MySQL的root密碼
方法一
在mysql系統外,使用mysqladmin
# mysqladmin -u root -p password "test123"
Enter password: 【輸入原來的密碼】
方法二
通過登錄mysql系統,
#?mysql -uroot -p Enter password: 【輸入原來的密碼】 mysql>use mysql; # set和update 選擇一個即可; mysql>?set password=password(‘rootroot‘); # set設置 mysql>?update user set password=password("test") where user=‘root‘; # update更新 mysql>?flush privileges; mysql>?exit;??????
2 忘記myql的root密碼
首先,你必須要有操作系統的root權限了。
類似於安全模式登錄系統,
2.1 關閉當前運行的mysqld服務程序
service mysqld stop(要先將mysqld添加為系統服務)
2.2 mysqld_safe以安全模式啟動重置密碼
使用mysqld_safe腳本以安全模式(不加載授權表)啟動mysqld 服務
mysqld_safe --skip-grant-tables & 或者 /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf? –skip-grant-tables &
&,表示在後臺運行,不在後臺運行的話,就再打開一個終端。
使用空密碼的root用戶登錄數據庫,重新設置ROOT用戶的密碼
# mysql #5.6及以前 mysql>?UPDATE mysql.user SET password=password(‘test123‘) WHERE user=‘root‘; # 5.7;mysql.user表authentication_string字段替換了password字段; mysql> UPDATE mysql.user SET authentication_string=password(‘test123‘) WHERE user=‘root‘; mysql>?flush privileges; mysql>?exit;?
本來mysql是不分大小寫的,但是這個是修改的mysql中的mysql數據庫的具體的值,要註意到。
2.3 通過修改配置文件重置密碼
修改配置文件(/etc/my.cnf),在 [mysqld] 小節下添加一行:skip-grant-tables=1,讓 mysqld 啟動時不對密碼進行驗證
vim /etc/my.cnf
添加:
skip-grant-tables=1
重啟mysql服務生效,修改方式同上;
修改完成後,在 [mysqld] 小節下去掉:skip-grant-tables=1
2.4 mysql 5.7 通過 alter 命令修改密碼
mysql5.7默認生成隨機密碼,在初始化mysql配置時產生;
mysql 5.7:通過臨時密碼登陸mysql服務,必須用alter命令修改密碼
mysql> alter user ‘root‘@‘localhost‘ identified by ‘rootroot‘;
mysql> flush privileges;
Linux下修改MySQL的用戶(root)的密碼