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;
😘 现在就可以用刚才创建的用户去连接啦~