联系电话:18858105031
您当前的位置:杭州SEO中心 > SEO答疑 >

远程mysql无法连接怎么办?实现远程连接数据库的步骤

  做SEO经常会遇到这样那样的问题,解决问题是SEO必备的技能,今天采集过程中,入库的时候,发现无法远程连接mysql数据库。于是乎,搞了一天....下面来详细介绍下步骤。
 
  一、本地开启Telnet客户端服务
 
  1、按“Win + R”快捷键,打开“运行”对话框,输入“cmd”后按回车键,输入Telnet 110.110.110.110 3306看下通不通,其中110.110.110.110是远程服务器ip地址,如果提示telnet不是内部或外部命令而导致无法运行(如图所示)
 
  2、按“Win + R”快捷键,打开“运行”对话框,输入“optionalfeatures”后按回车键,如下图所示:
 
  3、在打开的“Windows功能”窗口中,找到并勾选“Telnet客户端”,如下图所示:
  4、接着系统会应用修改,应用成功之后,关闭即可。
 
  二、3306通过linux防火墙
 
  1、输入Telnet 110.110.110.110 3306,如果如图所示,则3306端口没有通过防火墙,下面我们来开启下。
  也可以通过shell操作远程服务器iptables -L -n,如果没有3306,也说明3306端口没有通过防火墙。
 
  2、vim /etc/sysconfig/iptables更改防火墙设置

  vi /etc/sysconfig/iptables
 
  -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
 
  -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
 
  特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
 
  添加好之后防火墙规则如下所示:
 
  ######################################
 
  # 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 -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 INPUT -j REJECT –reject-with icmp-host-prohibited
 
  -A FORWARD -j REJECT –reject-with icmp-host-prohibited
 
  COMMIT
 
  #####################################
 
  /etc/init.d/iptables restart      #最后重启防火墙使配置生效
 
  三、数据库远程连接权限
 
  mysql -u root –p
 
  mysql>use mysql;
 
  mysql>update user set host = '%' where user = 'root';
 
  mysql>select host, user from user;

事后查找更多资料发现有比较全的方案

MySQL数据库无法远程连接的解决办法

 

  远程登陆数据库的时候出现了下面出错信息:
  ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx',
  经过今天下午的反复纠结,关于MySql数据库无法远程连接的问题可以归结为以下几点:

  1). 没有授予相应的权限:
  例如,你想root使用123456从任何主机连接到mysql服务器。

1
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码
1
2
mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION;
mysql>FLUSH RIVILEGES

  2). 修改mysql数据库中的user表使相应的用户能从某一主机登陆  

1
2
3
4
mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

  3). 防火墙禁止了3306端口,以iptable为例    

 

    vi /etc/sysconfig/iptables
    增加下面一行:
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306-j ACCEPT  
    service iptables restart

    ps:  iptables设置
    1) 重启后生效 
    开启: chkconfig iptables on 
    关闭: chkconfig iptables off 

    2) 即时生效,重启后失效 
    开启: service iptables start 
    关闭: service iptables stop

  4). 修改MySQL的配置文件/etc/mysql/my.cnf,因为默认3306端口只允许本地访问的,注释掉这行
    #bind-address = 127.0.0.1
  然后重启Mysql,/etc/init.d/mysql restart



上一篇:搜狗一直不收录网站可能有哪些原因? 下一篇:没有了
如果您需要帮助,可以立即拨打我们的服务热线!
杭州SEO服务
售后服务
Totop