MySQL 如何授权给用户DB权限给远程用户开启某个数据库的权限?

为了安全起见我们最好新建一个用户作为远程链接的账号(帐号名不能为root)。

先连接登录mysql

mysql -uroot -p

Enter password: #输入数据库的root密码,默认不显示密码

创建用户并授权允许所有访问地址。

# db_user:创建的用户名;%:表示授权允许所有地址连接;db_password:用户密码
create user db_user@'%' identified by 'db_password'; 

⚠️注意:远程连接记得开放服务器mysql远程端口,如果是云服务器云端口也要开放。

如果您的操作系统为CentOS系列:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save #保存iptables规则

如果您的操作系统为Ubuntu/Debian系列:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables.up.rules  #保存iptables规则

如:添加一个用户名为db_user,密码为db_pass,授权为% (%表示所有外围IP能连接)对db_name数据库所有权限

完整命令如下:

mysql -uroot -p

Enter password: #输入数据库的root密码,默认不显示密码

MySQL [(none)]> create user db_user@'%' identified by 'db_password'; #创建用户并授权允许所有访问地址。%表示授权所有地址

MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' identified 
by 'db_pass'; #授权语句,特别注意有分号

MySQL [(none)]> flush privileges; #权限立即生效

MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号

例:

create user yunmo_test@'%' identified by 'yunmo'; 

grant all privileges on yunmo_test.* to yunmo@'%' identified by 'yunmo';

flush privileges;

exit;

😘 现在就可以用刚才创建的用户去连接啦~