MySQL密码知识点

安装MySQL后,默认管理员的root密码为空

设置密码

/usr/local/mysql/bin/mysqladmin -u root password '123'

修改密码

命令行外修改

[root@localhost ~]# /usr/local/mysql/bin/mysqladmin -uroot -p123 password '123123'
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p123
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p123123
mysql> 

命令行内修改

mysql> update mysql.user set password=password('123') where user='root' and host='localhost'; 
Query OK,
4 rows affected (0.04 sec) Rows matched: 4 Changed: 4 Warnings: 0
mysql
> flush privileges; #刷新MySQL的系统权限相关表 或者 退出重新登录 Query OK, 0 rows affected (0.00 sec)

set方式

SET PASSWORD = PASSWORD('yhq')    #修改当前用户密码
SET PASSWORD FOR 'yhq'@'localhost' = PASSWORD('yhq');  #根据用户名  用户名的指定格式为用户名@主机名

 找回密码

 关闭mysql服务

[root@localhost ~]# ps -ef|grep mysql
root      1528     1  0 20:36 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
mysql     1878  1528  0 20:36 ?        00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/localhost.localdomain.err --pid-file=/usr/local/mysql/data/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root     19925 17999  0 21:53 pts/2    00:00:00 /usr/local/mysql/bin/mysql -uroot -px xxxx
root     27503 31348  0 22:39 pts/0    00:00:00 grep mysql
[root@localhost ~]# kill 1878
[root@localhost ~]# ps -ef|grep mysql
root     19925 17999  0 21:53 pts/2    00:00:00 /usr/local/mysql/bin/mysql -uroot -px xxxx
root     29387 31348  0 22:40 pts/0    00:00:00 grep mysql

忽略授权表启动

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql &
[1] 4296
[root@localhost ~]# 190801 22:44:03 mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
190801 22:44:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

修改密码

[root@localhost ~]# /usr/local/mysql/bin/mysql
mysql> update mysql.user set password=password("yhq") where user='root' and host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

关闭mysql(因为此时服务是忽略授权表)

[root@localhost ~]#  /usr/local/mysql/bin/mysqladmin -uroot -pyhq shutdown
[root@localhost ~]# ps -ef |grep mysqld
root     13426 31348  0 23:01 pts/0    00:00:00 grep mysqld

重启登录

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -pyhq

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/yhq-qhh/p/10859310.html