时间:2021-07-01 10:21:17 帮助过:22人阅读
1、确定服务器上的防火墙没有阻止 3306 端口。
MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。
如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。
如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。
2.确定安全狗等没有拦截我们的备份服务器IP
如果你的服务器上有安装安全狗等安全类软件,请将我们的备份服务器IP 115.28.36.60以及其他的备份服务器IP添加到白名单中。
3、增加允许远程连接 MySQL 用户并授权。
1)登陆服务器端,进入命令行。
Windows 主机中是点击开始菜单,运行,输入“cmd”,进入命令行。
2)以数据库管理员帐号进入mysql控制台。在命令行执行 mysql -u root -p 密码,输入完成后即可进入mysql控制台。
例如: MySQL -uroot -p123456
123456 为 root 用户的密码。
3)创建远程登陆用户并授权,在控制台继续执行下面语句。
grant select,lock tables on demodb.* to demouser@'115.28.36.60′ identified by 'your password';
解释:demodb=数据库名;demouser=数据库用户名;your password=数据库密码
例如:
grant select,lock tables on discuz.* to ted@'115.28.36.60′ identified by '123456′;
4)执行了上面的语句后,再执行下面的语句,方可立即生效。
flush privileges;
小编解释:
grant select,lock tables on discuz.* to ted@'115.28.36.60′ identified by '123456′;
上面的语句表示将 discuz 数据库的select,locked权限授权给 ted 这个用户,允许 ted 用户在 115.28.36.60 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
115.28.36.60 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
注意:
115.28.36.60是我们的一个备份服务器IP,主要用来测试我们的服务器是否能够连接上你的数据库。
这里很多朋友会有疑问,这样会不会不安全啊,其实不用担心,因为首先,你只是授权允许我们的服务器连接你的数据库,其次,我们的服务器也只具有select和lock权限,也就是查询和锁表的权限,所以完全不能更改你的数据库。
不放心的话可以在mysql控制台执行 select host, user from user; 检查一下用户表里的内容.因为开启mysql远程登录的用户都是存储在mysql数据库中的user表中。