环境:centos7 MySQL5.7
首先要保证网络正常,可以ping通服务器。如果无法连接其中可能的原因大致为以下
一、先查看3306端口
没有3306说明mysql没启动,启动即可
二、防火墙原因
查看防火墙状态 firewall-cmd state,或者systemctl status firewalld
解决方法:
1、关闭防火墙systemctl stop firewalld
2、firewall-cmd --add-port=3306/tcp(添加3306端口其他端口类似)-----临时添加
以上均为临时解决方案,重启又会恢复,解决此问题可以把firewalld禁用,设置服务firewalld为disable(用systemctl或chkconfig firewalld off)
把3306永久添加可以firewall-cmd --zone=public --add-port=3306/tcp --permanent,然后重新加载firewall-cmd --reload即可
推荐这种,相对关闭防火墙安全些。
三、mysql没有设置允许远程连接
1、直接修改数据库mysql中的user表
本地登录 mssql -h localhost -u root -p ---->>>use mysql;---->>>update user set host='%' where user='root';(注意分号)
查看设置的值看图吧
2、修改用户权限
进入本地数据库执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
注: *.*第一个星号代表数据库名称可指定数据库,第二个星号代表数据库中表的名称也可指定,当然星号*代表任意
root可替换为其他指定用户,%为ip可指定,mypassword为指定的登录密码
查询root用户权限 show grants for root@主机名或者ip;(可指定用户)如:show grants for test@主机名或者ip;查询test用户权限