1. 程式人生 > >修改mysql密碼方法小結

修改mysql密碼方法小結

l數據庫 spa serve err killall string set face fix

修改MySQL密碼方法小結

MySQL5.7版本之前修改密碼的方法:


方法1: 用SET PASSWORD命令

  mysql -u root
  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"
  如果root已經設置過密碼,采用如下方法
  mysqladmin -u root password oldpass "newpass"


方法3: 用UPDATE直接編輯user表

[root@ ~]#mysql -uroot -p
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;

在丟失root密碼的時候,可以這樣

mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;

MySQL 5.7.22修改密碼的方式如下:



1,版本更新,原來user裏的password字段已經變更為authentication_string版本更新 緣故,好多網上的教程都不適用了,甚至連官網的文檔也不是能夠順利操作的。如果 MySQL 正在運行,首先殺之:killall -TERM mysqld。運行mysqld_safe --skip-grant-tables &如果此時不想被遠程連接:mysqld_safe --skip-grant-tables --skip-networking &使用mysql連接server更改密碼

mysql> update mysql.user set authentication_string=password('hwg123') where user='root' and Host = 'localhost';
mysql> exit
[root@Centos7_3 ~]# systemctl restart mysqld

*特別提醒註意的一點是,新版的mysql數據庫下的user表中已經沒有Password字段了

而是將加密後的用戶密碼存儲於authentication_string字段。


2,升級mysql報錯如下:ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50556, now running 50722. Please use mysql_upgrade to fix this error.錯誤是由於你曾經升級過數據庫,升級完後沒有使用mysql_upgrade升級數據結構造成的。

解決辦法:使用mysql_upgrade命令

root@localhost ~]# mysql_upgrade -u root -phwg123

3,MySQL5.7.22數據庫安裝完後更改密碼;

[root@ ~]# cat /var/log/mysqld.log | grep password
[root@ ~]# mysql -uroot -pRir.*sJUX6M*

進入mysql後需要改全局變量。要不然你設置的密碼要符合密碼復雜度。

mysql> set global validate_password_policy=0;
[root@zabbixserver ~]# systemctl restart mysqld
[root@zabbixserver ~]# mysql -uroot -pRir.*sJUX6M*
mysql> ALTER USER USER() IDENTIFIED BY '12345678';

或者是這個樣子:

mysql> ALTER USER USER() IDENTIFIED BY 'Pass123!';



修改mysql密碼方法小結