1. 修改mysql登录权限前的准备工作
修改MySQL登录权限前需要做一些准备工作,包括备份mysql的数据,以防修改错误导致数据丢失。同时,也需要登录MySQL的root账户,准备进行修改操作。
# 备份mysql数据
mysqldump -uroot -p --all-databases > all.sql
# 登录mysql的root账户
mysql -uroot -p
2. 修改mysql登录权限
MySQL的登录权限主要分为两个部分,一是控制用户可否从远程主机登录,二是控制用户登录时是否需要输入密码。下面将分别介绍如何进行修改。
2.1 控制远程访问权限
MySQL的控制远程访问权限主要通过修改MySQL服务器的配置文件实现,配置文件一般为/etc/mysql/my.cnf。
修改方式如下:
# 找到以下内容
bind-address = 127.0.0.1
# 将其修改为
# bind-address = 0.0.0.0
将该项的值从127.0.0.1修改为0.0.0.0即可允许所有IP地址访问MySQL服务器。也可以将其修改为指定的某个IP地址。
2.2 控制登录密码需求
MySQL的控制登录密码需求主要通过修改MySQL用户的属性实现。例如,下面我们将修改MySQL用户"test"的登录密码需求,使之不需要输入密码。
修改方式如下:
# 登录mysql的root账户
mysql -uroot -p
# 修改"test"用户的密码认证方式为无需密码
mysql> UPDATE mysql.user SET authentication_string='' WHERE user='test';
mysql> FLUSH PRIVILEGES;
执行以上命令即可修改MySQL用户"test"不需要输入密码即可登录。
3. 恢复mysql登录权限
如果修改错了MySQL登录权限,可以通过以下两种方式进行恢复:
3.1 恢复远程访问权限
如果修改MySQL的远程访问权限,可以通过以下命令恢复。
# 将bind-address改回127.0.0.1
bind-address = 127.0.0.1
3.2 恢复登录密码需求
如果修改MySQL的登录密码需求,可以通过以下命令恢复。
# 登录mysql的root账户
mysql -uroot -p
# 将“test”用户的密码认证方式改为使用密码
mysql> SET PASSWORD FOR 'test'@'localhost' = PASSWORD('password');
mysql> FLUSH PRIVILEGES;
以上命令将会为MySQL用户“test”设置一个密码“password”,并将其密码认证方式修改为需要密码认证。使用该密码即可进行登录。