mariaDB无法从远程主机连接

MariaDB [(none)]> show variables like '%skip_networking%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | skip_networking | OFF | +-----------------+-------+ 1 row in set (0.00 sec) 

当我尝试

 mysql -uroot -p -h 192.168.0.30 

我收到了这个

 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.30' (111 "Connection refused") 

在文件中

  /etc/mysql/mariadb.conf.d/50-server.cnf 

我有这个:

 bind-address = 0.0.0.0 # skip-networking 

我希望你能帮助我。

本地连接工作。

 sudo netstat -ntlup | grep mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 11580/mysqld 

我看到“127.0.0.1:3306”,但我不知道如何改变它。

积分: https : //stackoverflow.com/a/14779244/7499402

默认情况下禁用的是远程root访问。 如果要启用它,请在本地运行此SQL命令:

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES; 

然后在Unix / OSX系统上find以下行并将其注释my.cnf文件中,该文件通常位于my.cnf上。 如果是Windows系统,可以在MySQL安装目录下find它,通常是C:\Program Files\MySQL\MySQL Server 5.5\ ,文件名将是my.ini

换行

  bind-address = 127.0.0.1 

  #bind-address = 127.0.0.1 

然后重新启动MySQL服务器以使更改生效。

进程mysqld正在监听127.0.0.1:3306 ,如netstat输出所示。 这就解释了为什么在远程connection refused出现connection refused错误。 它只是在本地接受连接。

validation您正在更改正确的configuration文件后,您需要重新启动mysqld进程。

问题是你的configuration的位置。 我不认为/etc/mysql/mariadb.conf.d被mariadb拾起。

他们的文档来解决你的问题( https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/ )build议把你的绑定地址放在一个my.cnf文件中:

  * /etc/my.cnf (*nix/BSD) * $MYSQL_HOME/my.cnf (*nix/BSD) *Most Notably /etc/mysql/my.cnf * SYSCONFDIR/my.cnf (*nix/BSD) * DATADIR\my.ini (Windows) 

我怀疑你可能能够在/etc/mysql/my.cnf.local中添加你的bind-addressconfiguration,这应该让mariadb在0.0.0.0上侦听。

根据你的netstat输出,我认为你的额外的configuration文件根本没有被拿起。