一个计算机技术爱好者与学习者

0%

好好学MySQL:MySQL重置密码

1. mysql5.6设置密码

1.1. 通过修改表数据设置密码

一般mysql的root默认密码为空,如果之前没有设置过root密码,我们可以使用空密码登录后设置密码。

1、启动mysql

1
service start mysql

2、进入mysql控制台

1
mysql -u root

3、修改密码

1
2
3
use mysql;
update mysql.user set password=password('voidking') where user='root';
exit;

4、重启mysql服务

1
service mysqld restart

5、测试登录

1
mysql -u root -p

1.2. 通过mysqladmin修改密码

1、启动mysql

2、重置密码

1
mysqladmin -u root -p password voidking

2. mysql5.6忘记密码

1、停止或者kill掉mysql进程

1
service mysqld stop

2、以不检查权限的方式启动mysql

1
2
cd /usr/local/mysql/bin
./mysqld_safe --skip-grant-tables &

3、用空密码登录mysql

1
mysql -u root

4、修改root用户的密码

1
2
3
4
5
6
7
8
9
10
11
12
use mysql;
select user, host from user;

update user set password=password('voidking') where user='root' and host='localhost';
update user set password=password('voidking') where user='root' and host='%';
-- or
grant all privileges on *.* to root@'localhost' identified by 'voidking' with grant option;
grant all privileges on *.* to root@'%' identified by 'voidking' with grant option;

select host, user from user;
flush privileges;
quit;

PS:主机地址支持单个 IP 形式的地址,也支持填入%(表示不做 IP 范围限制)进行模糊匹配。
示例1:填入%,表示不做 IP 范围限制,即允许所有 IP 地址的客户端使用该帐号访问数据库。
示例2:填入10.5.10.%,表示允许 IP 范围在10.5.10.%内的客户端使用该帐号访问数据库。
示例3:填入%.mysql-read.mysql.svc.cluster.local,表示允许主机名范围在%.mysql-read.mysql.svc.cluster.local内的客户端使用该帐号访问数据库。

5、重新启动mysql

1
2
3
4
ps -e | grep mysql
kill -KILL $mysqld_safe_pid
kill -KILL $mysqld_pid
service mysqld start

6、测试登录mysql

1
mysql -u root -p

3. mysql5.7修改密码

1
2
3
select user,host from mysql.user where user='root';
set password for root@'localhost' = password('voidking');
set password for root@'%' = password('voidking');

4. mysql8重置密码

1
2
alter user 'root'@'localhost' identified with mysql_native_password by 'voidking';
flush privileges;

5. 允许远程访问

1、确认配置了远程访问权限

1
2
3
use mysql;
select user, host from user where user='root';
grant all privileges on *.* to 'root'@'%' with grant option;

2、开放所在主机端口

1
2
3
4
systemctl stop firewalld.service
# or
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

6. 书签