首页 > 解决方案 > MariaDB 的连接字符串

问题描述

我正在使用 MariaDB v5.5.68 运行 CentOS v7.9。我正在尝试使用带有 SQLTools 和 MySQL/MariaDB 扩展的 Visual Studio Code 从 Win10 机器访问 MariaDB 数据库。

我已根据此链接为远程访问 配置 MariaDB:为远程客户端访问配置 MariaDB

[mysqld]
skip-networking=0
skip-bind-address

我创建了用户并添加了权限 - 通过使用“bob”在本地登录并在mysql.user. (顺便说一句,如果不是很明显,UID、主机和 PWD 不是真实的。)

CREATE USER 'bob'@'1.2.3.%' IDENTIFIED BY 'myPWD';
GRANT ALL PRIVILEGES ON *.* TO 'bob'@'1.2.3.%' IDENTIFIED BY 'myPWD';

但是,当我尝试使用远程登录(从另一个 Linux 机器)mysql -u userID -h hostIP -p时,出现错误:

ERROR 2003 (HY000):  Can't connect to MySQL server on '1.2.3.4' (110)

当我尝试使用 VS Code 建立数据库连接时,SQLTools 告诉我已连接,但它不会显示任何表,我无法进行任何查询,并且出现此错误: Request connection/GetChildrenForTreeItemRequest failed with message: Handshake inactivity timeout.

我已经查看了这个 SO 页面和其他页面,但仍然无法使连接正常工作。

为清楚起见更新 - 提供 mysql.user 和 netstat 信息:

MariaDB [(none)]> select user, host from mysql.user;
+------+-------------+
| user | host        |
+------+-------------+
| bob  | 10.0.2.15   |      # Can't connect
| rob  | 127.0.0.1   |      # Logs in locally via command line
| root | 127.0.0.1   |      # Logs in locally via command line
| bob  | 192.168.0.% |      # Can't connect
| root | 192.168.0.% |      # Can't connect
| root | ::1         |      # Logs in locally via command line
| rob  | localhost   |      # Logs in locally via command line
| root | localhost   |      # Logs in locally via command line
+------+-------------+
8 rows in set (0.00 sec)


$ > netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27         33813      -                   

非常感谢任何帮助,因为我已经解决了这个问题 2 天以上并且没有取得任何进展。

标签: mariadbremote-access

解决方案


推荐阅读