MySQL远程访问

我们有一个MySQL数据库服务器,它运行在我们希望远程连接的Amazon Linux Instance上。

我们已经在AWS安全组中为我们的LAN网关方式IP设置了端口3306的访问权限。

我们已经执行了下面的命令来授予对我们连接数据库和输出的IP的访问权限,如下所示

GRANT ALL PRIVILEGES ON *.* TO 'root'@'our IP Address' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) 

在尝试使用MySQLpipe理员工具连接数据库时,仍然收到以下错误消息:

 Host: Our IP address where MySQL server runs User : root Password: Our password MySQL Error: Could not connect to the specified instance. MySQL error number 2003 Can't connect to MySQL server on 'MySQL server IP Address'(10060) 

我们怎么能解决这个问题?

谢谢!

你需要确定问题的根源。

  • 首先 :检查问题是否来自networking连接。 尝试ping IP或域名:

     $ ping $YOUR_IP 
  • 其次 :通过直接联系来检查你的标识符。 您的错误可能会导致configuration错误:

     $ mysql -h $YOUR_IP -P 3306 -u root -p 

    你应该看到一个提示。

如果上述两个testing成功,您应该检查您的应用程序configuration文件。

注意:使用root用户进行远程访问不是一个好习惯,您应该创build一个新的用户(特定于您的需要),并且权限有限。

您还需要确保防火墙(iptables)不阻止访问。

可能的地方检查:

  • 防火墙:仔细检查EC2安全组和服务器防火墙(iptables,ufw等)中端口3306是否打开(至less是您的IP地址)。

  • MySQLconfiguration:检查MySQL服务器是否configuration( my.cnf )监听TCP端口,而不是UNIX套接字。 例如

    的[mysqld]
    端口= 3306
     bind-address = 0.0.0.0
     #跳过networking