我正在尝试在我的 Raspberry Pi 4 上创建一个 MySQL 数据库,但进展不太顺利,使用 localhost 可以完美地工作,但我想从同一互联网上的 Windows 10 计算机远程控制它。当我通过这样做创建地址为 192.168.1.15 的用户时:
sudo mysql -u root
CREATE USER 'lasse'@'192.168.1.15' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'lasse'@'192.168.1.15';
FLUSH PRIVILEGES
exit
我尝试使用此再次登录:
mysql -u lasse -h 192.168.1.15 -ppassword // didnt work, error: ERROR 2002 (HY000): Can't connect to MySQL server on '192.168.1.15' (115)
mysql -u user -h 192.168.1.2 -P 3306 -ppassword // didnt work either, same error.
我安装了这些软件包:
mariadb-client
mariadb-server
default-mysql-server
在文件
/etc/mysql/mariadb.conf.d/50-server.cnf
(安装了 MariaDB 的 Raspi-os 2021-03-04)中,您应该将行 "bind-address = 127.0.0.1"
(localhost) 替换为 "bind-address = 0.0.0.0"
(全部)。之后,您应该重新启动 MySQL 服务器:$ sudo service mariadb restart
套接字操作(EINPROGRESS)返回错误115,这意味着您的客户端无法物理连接到指定的服务器和端口。
MariaDB 数据库服务器配置不正确,因为它不接受远程连接。请本地登录并检查以下变量:
SHOW VARIABLES LIKE 'skip_networking'
(结果应该关闭)SHOW VARIABLES LIKE 'bind-address'
(不应是 127.0.0.1)
由于这些是只读变量,因此您需要在 my.cnf 配置文件中更改它们(或用
#
注释掉它们)。
ERROR 2002 是“无法连接”错误。查看/etc/my.cnf,查找监听行。它可能正在监听 localhost 或 127.0.0.1。您需要将其更改为监听 0.0.0.0.
有三件事
满足所有条件后,您应该能够连接到192.168.1.15上的mysql数据库
最有可能的情况是服务器没有侦听端口 3306。就像在both行中一样,您隐式或显式使用端口 3306。因为它是这两行中唯一的常量,最有可能是罪魁祸首。
clients 的 default 端口在 my.ini 的 [client]
部分指定,server 使用的端口在
[mysqld]
部分。它们不一定相同,因此请检查两者。为了绝对确定服务器上发生了什么 - 假设它是 Linux - 使用它来列出所有侦听端口:
sudo netstat -tnlp
这样,您就不用步行去看文档了。