1. 程式人生 > >Linux下修改MySQL的用戶(root)的密碼

Linux下修改MySQL的用戶(root)的密碼

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)的密碼