MySQL5.7版本之前修改密码的方法:
方法1:用SET PASSWORD命令
mysql -u root
mysql> SET PASSWORD FOR'root '@'localhost' = PASSWORD('newpass');
方法2:用中mysqladmin
mysqladmin -u root密码“newpass”
如果根已经设置过密码,采用如下方法
mysqladmin -u root密码oldpass“newpass”
方法3:用UPDATE直接编辑用户表
[root @~] #mysql -uroot -p
mysql>使用mysql;
mysql> UPDATE用户SET密码= PASSWORD('newpass')WHERE user ='root';
mysql> FLUSH PRIVILEGES;
在丢失根密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE用户SET密码= PASSWORD(“新密码”)WHERE user ='root';
mysql> FLUSH PRIVILEGES;
MySQL 5.7.22修改密码的方式如下:
1,版本更新,原来用户里的密码字段已经变更为authentication_string版本更新缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的。如果MySQL正在运行,首先杀之:killall -TERM mysqld。运行mysqld_safe --skip-grant-tables&如果此时不想被远程连接:mysqld_safe --skip-grant-tables --skip-networking&使用mysql连接服务器更改密码
mysql> update mysql.user set authentication_string = password('hwg123')其中user ='root'和Host ='localhost';
mysql> exit
[root @ Centos7_3~] #systemctl restart mysqld
*特别提醒注意的一点是,新版的MySQL的数据库下的用户表中已经没有密码字段了
而是将加密后的用户密码存储于authentication_string字段。
2,升级mysql报错如下:ERROR 3009(HY000):mysql.user的列数错误。预计45,发现42.使用MySQL 50556创建,现在运行50722.请使用mysql_upgrade修复此错误。错误是由于你曾经升级过数据库,升级完后没有使用mysql_upgrade升级数据结构造成的。
解决办法:使用mysql_upgrade命令
root @ localhost ~] #mysql_upgrade -u root -phwg123
3,MySQL5.7.22数据库安装完后更改密码;
[root @~] #cat /var/log/mysqld.log | grep密码
[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()通过'Pass123'识别!