MySQL重置密码

文章目录
  1. 1. 设置mysql初始密码
    1. 1.1. 常规设置密码
    2. 1.2. mysqladmin
  2. 2. phpmyadmin修改密码
  3. 3. mysql忘记密码
  4. 4. 空密码无法登录
    1. 4.1. 问题描述
    2. 4.2. 解决办法
  5. 5. 允许远程访问
  6. 6. 书签

设置mysql初始密码

常规设置密码

一般mysql的root默认密码为空,如果之前没有设置过root密码,我们可以使用空密码登录后设置密码。
1、启动mysql,centos中service start mysql,windows中net start mysql

2、mysql -u root,进入mysql控制台

3、执行修改密码命令

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

4、重启mysql服务
service mysqld restart

5、测试登录
mysql -u root -p

mysqladmin

也可以使用mysqladmin命令来修改root密码。
1、启动mysql

2、重置密码
mysqladmin -u root -p password voidking

phpmyadmin修改密码

安装配置phpmyadmin,方法自行百度。

mysql忘记密码

1、kill掉系统里的mysql进程

2、以不检查权限的方式启动mysql:
mysqld_safe --skip-grant-tables &

3、用空密码登录mysql
mysql -u root

4、修改root用户的密码

1
2
3
mysql> update mysql.user set password=password('voidking') where user='root';
mysql> flush privileges;
mysql> quit;

5、重新启动mysql

1
2
3
4
ps -e | grep mysql
kill -KILL [PID of mysqld_safe]
kill -KILL [PID of mysqld]
service mysqld start

6、测试登录mysql
mysql -u root -p,回车后输入新设置的密码“voidking”即可。

空密码无法登录

问题描述

登录mysql,mysql -u root -p,两次回车,结果提示,“ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password:NO)”。

解决办法

1、停止mysql服务,service mysqld stop
2、进入/usr/local/mysql/bin文件夹,启用安全模式,./mysqld_safe --skip-grant-tables &
3、使用root用户登录mysql,mysql -u root
4、修改root用户密码:

1
2
3
4
5
mysql> use mysql;
mysql> select * from user;
mysql> truncate table user;
mysql> flush privileges;
mysql> grant all privileges on *.* to root@localhost identified by 'voidking' with grant option;

如果想设置密码为空,那么:

1
2
mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
mysql> flush privileges;

确认结果:

1
2
3
4
5
6
7
8
mysql> select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
mysql> quit;

5、启动mysql服务:

1
2
3
4
ps -e | grep mysql
kill -KILL [PID of mysqld_safe]
kill -KILL [PID of mysqld]
service mysqld start

6、登录mysql,mysql -u root -p,回车后输入新设置的密码“voidking”即可。

允许远程访问

1、关闭防火墙
systemctl stop firewalld.service

或者开放端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload

2、登录mysql控制台,然后依次输入:
mysql> use mysql;
mysql> grant all privileges on *.* to 'root'@'%' identified by 'voidking' with grant option;

书签

Mysql数据库中设置root密码的命令及方法

Access denied for user ‘root@localhost’ (using password:NO)