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文件根本没有被拿起。