方法一:
登录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