当我使用远程IP地址时,我无法连接到我的服务器。
Localhost工作正常。
一些信息:
操作系统:Ubuntu 16.04
数据库:MariaDB
端口3306已打开
用户具有远程(%)访问权限。
我已将50-server.conf中的bind-address更改为bind-address = 0.0.0.0,我尝试将其注释掉。他们都没有工作。还尝试将my -conf中的bind-address = 0.0.0.0放在[mysqld]组标签下。每次更改后,我重新启动Mysql并尝试使用此命令连接mrsql -u root -h xxx.xxx.xxx.xxx -p。它适用于localhost,但在我尝试使用服务器IP时不起作用。
如何解决这个问题?
答案 0 :(得分:0)
经过几天的浏览并尝试了stackoverflow中提供的所有解决方案,我终于设法远程建立了与mysql或Mariadb的连接。
以下是从远程计算机访问mysql db的解决方案:
首先,在您的/etc/my.cnf或my.cnf在计算机中的任何位置:
bind-address= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED
# skip-networking ( This will allow TCP/IP connection)
第二,确保/etc/hosts.deny中没有ip(在很多情况下,这可能是连接的根本原因)
> Important:
> 1. restart mysqld = systemctl restart mysqld ( Ubuntu might have diff cmd)
> 2. check status = systemctl status mysqld ( Ubuntu might have diff cmd)
> 3. check port and ip on which mysqld is running = netstat -tlnp It should be running on THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED: 3306 ( Ubuntu might have diff cmd)
第三,创建一个具有以下所有特权的用户:
> GRANT ALL ON db_name.* TO username@THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;
最后,如果使用工作台或任何其他客户端建立连接。输入值为:
> HOSTNAME= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED
>username=username
我希望这对我的其他用户有帮助!