MySQL修改密码方法汇总
MySQL5.7版本之前修改密码的方法:
方法1:用SETPASSWORD命令
mysql-uroot
mysql>SETPASSWORDFOR'root'@'localhost'=PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin-urootpassword"newpass"
如果root已经设置过密码,采用如下方法
mysqladmin-urootpasswordoldpass"newpass"
方法3:用UPDATE直接编辑user表
[root@~]#mysql-uroot-p
mysql>usemysql;
mysql>UPDATEuserSETPassword=PASSWORD('newpass')WHEREuser='root';
mysql>FLUSHPRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe--skip-grant-tables&
mysql-urootmysql
mysql>UPDATEuserSETpassword=PASSWORD("newpassword")WHEREuser='root';
mysql>FLUSHPRIVILEGES;
MySQL5.7.22修改密码的方式如下:
1,版本更新,原来user里的password字段已经变更为authentication_string版本更新缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的。如果MySQL正在运行,首先杀之:killall-TERMmysqld。运行mysqld_safe--skip-grant-tables&如果此时不想被远程连接:mysqld_safe--skip-grant-tables--skip-networking&使用mysql连接server更改密码
mysql>updatemysql.usersetauthentication_string=password('hwg123')whereuser='root'andHost='localhost';
mysql>exit
[root@Centos7_3~]#systemctlrestartmysqld
*特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了
而是将加密后的用户密码存储于authentication_string字段。
2,升级mysql报错如下:ERROR3009(HY000):Columncountofmysql.useriswrong.Expected45,found42.CreatedwithMySQL50556,nowrunning50722.Pleaseusemysql_upgradetofixthiserror.错误是由于你曾经升级过数据库,升级完后没有使用mysql_upgrade升级数据结构造成的。
解决办法:使用mysql_upgrade命令
root@localhost~]#mysql_upgrade-uroot-phwg123
3,MySQL5.7.22数据库安装完后更改密码;
[root@~]#cat/var/log/mysqld.log|greppassword
[root@~]#mysql-uroot-pRir.*sJUX6M*
进入mysql后需要改全局变量。要不然你设置的密码要符合密码复杂度。
mysql>setglobalvalidate_password_policy=0;
[root@zabbixserver~]#systemctlrestartmysqld
[root@zabbixserver~]#mysql-uroot-pRir.*sJUX6M*
mysql>ALTERUSERUSER()IDENTIFIEDBY'12345678';
或者是这个样子:
mysql>ALTERUSERUSER()IDENTIFIEDBY'Pass123!';