方法一:

登录mysql

mysql> set password for user@localhost = password('mypassword');

eg:

mysql>set password for zbxuser@localhost = password('zbxpass');

方法二:

登录mysql, 用 update 语句修改表

mysql>use mysql;

mysql>update user set password=password('mypassword') where cluase;

mysql>flush privileges;

或者

mysql>update mysql.user set password=password('mypassword') where cluase;

mysql>flush privileges;

eg:

mysql>user mysql;

mysql>update user set password=password('zbxpass') where user='zbxuser' and host='localhost';

mysql>flush privileges;

或者

mysql>update mysql.user set password=password('zbxpass') where user='zbxuser' and host='localhost';

mysql>flush privileges;

方法三:

用 mysqladmin 命令

mysqladmin -u用户名 -p旧密码 password 新密码

eg:

# mysqladmin -uzbxuser -pzbxpass password zbxpassnew;

如果忘记 mysql 的root 用户密码

方法一.

修改 /etc/my.cnf 文件

[mysqld] 中添加一行

skip-grant-tables

重启mysqld服务 systemctl restart mysqld.service,用root用户登录mysql,此时不需要输入密码了 

mysql -uroot 
mysql>use mysql
mysql>update user set password=password('123456') where user='root';
mysql>flush privileges;

方法二.

先停止mysql服务

启动服务 

mysqld_safe --skip-grant-tables & 跳过授权表,并在后台执行。为了安全起见 再加上--skip-networking (禁止远程登录功能)

mysqld_safe --skip-grant-tables &
mysql -u root mysql
mysql>update user set password=password('root123') where user='root';
mysql>flush privileges;

此方法执行 mysqld_safe --skip-grant-tables 是在后台运行,有可能在改完密码之后,重启mysqld时会报错,重启失败

这时候用 ss -tnlp 查看mysqld进程,kill 掉;还有ps aux | grep mysqld 检查一下,是不是还有mysqld_safe命令在后台运行,有的话也kill掉,然后再启动mysql,这时候新密码就会 生效了;

参考:https://www.cnblogs.com/kyosusan/p/5198934.html

posted on 2018-09-12 17:17  队长china  阅读(165)  评论(0编辑  收藏  举报