Linux中 MySQL 授权远程连接的方法步骤
说明:当别的机子(ip )通过客户端的方式在没有授权的情况下是无法连接 mysql 数据库的,如果需要远程连接 linux 系统上的 mysql 时,必须为其 ip 和 具体用户 进行 授权 。一般 root 用户不会提供给开发者。如:使用 windows 上的 sqlyog 图形化管理工具连接 linux 上的 mysql 数据库,必须先对其进行授权。
1、在虚拟机中使用 root 用户登录 mysql 数据库
mysql -u root -p
说明:root 用户密码一般设置为 root
2、使用 mysql 命令为 root 用户授权 mysql 远程连接服务
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
说明:此命令是为密码为 root 、ip(%)任意的 root 用户授权。(%:模糊查询,所有 ip 都可以,,可指定其他主机 ip;by 后的 'root' 为密码)
3、将配置写入 mysql 授权表中
mysql> flush privileges;
修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。
mysql>use mysql; mysql>update user set host = '%' where user ='root'; mysql>select host,user from user; mysql> flush privileges;
补充:防火墙开放3306端口
1、打开防火墙配置文件
vi /etc/sysconfig/iptables
2、增加下面一行
-a input -m state --state new -m tcp -p tcp --dport 3306 -j accept
3、重启防火墙
service iptables restart
注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前
附:个人配置
# firewall configuration written by system-config-firewall # manual customization of this file is not recommended. *filter :input accept [0:0] :forward accept [0:0] :output accept [0:0] -a input -m state --state established,related -j accept -a input -p icmp -j accept -a input -i lo -j accept -a input -i eth0 -j accept -a input -m state --state new -m tcp -p tcp --dport 22 -j accept -a input -m state --state new -m tcp -p tcp --dport 80 -j accept -a input -m state --state new -m tcp -p tcp --dport 3306 -j accept -a forward -m state --state established,related -j accept -a forward -p icmp -j accept -a forward -i lo -j accept -a forward -i eth0 -j accept -a input -j reject --reject-with icmp-host-prohibited -a forward -j reject --reject-with icmp-host-prohibited commit
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
上一篇: 大寒节气容易惹病 养生注意防五寒
下一篇: 小寒节气养生常识 阴虚阳虚之人如何食补