改写之前的问题。我试图理解为什么我可以通过 PuTTY 上的 SSH 访问 Mariadb,但不能通过 R 访问 Mariadb。我使用的是 Windows 11 v. 22H2;服务器由 cpanel 托管。
通过 PuTTY 打开连接,我可以使用登录 Mariadb
mysql -u USER -p;
从那里我可以
show databases;
并执行其他 SQL 查询。
但是,在 R 中通过 SSH 连接后,我无法打开与 Mariadb 的连接。在 R 中,这失败了:
mysqlconnection = dbConnect(RMySQL::MySQL(),
host='localhost',
user='USER',
password='PW')
“无法连接到服务器”或“主机不允许连接到此 MariaDB 服务器)
注意: 我正在联系合适的人以便将用户添加为 描述于 主机 'xxx.xx.xxx.xxx' 不允许连接到此 MySQL 服务器 ...但我什至不明白为什么我需要这样做,因为它有效 在 PuTTY 中,使用完全相同的凭据。
我也尝试使用
进行连接ssh_exec_wait(ssh_connection, command = 'mysql -u USER -p' )
最坏的情况R崩溃;最好的情况是控制台提示输入密码,但我不知道如何输入它(是的,我尝试在控制台中输入密码并按 Enter 键。没有执行任何操作。)我收到 R 正在响应 OpenSSH 的 keepalive 的消息。
消息全文:
channel_open: Creating a channel 43 with 64000 window and 32768 max packet
ssh_packet_global_request: Received SSH_MSG_GLOBAL_REQUEST packet
ssh_packet_global_request: UNKNOWN SSH_MSG_GLOBAL_REQUEST [email protected], want_reply = 0
ssh_packet_global_request: Invalid SSH_MSG_GLOBAL_REQUEST packet
ssh_packet_ignore_callback: Received SSH_MSG_DEBUG packet
ssh_packet_channel_open_conf: Received a CHANNEL_OPEN_CONFIRMATION for channel 43:0
ssh_packet_channel_open_conf: Remote window : 0, maxpacket : 32768
channel_rcv_change_window: Adding 2097152 bytes to channel (43:0) (from 0 bytes)
channel_request: Channel request exec success
grow_window: growing window (channel 43:0) to 1280000 bytes
Enter password: channel_rcv_request: Responding to Openssh's keepalive
那么,我正在尝试学习和理解为什么我可以使用 PuTTY 连接,但不能使用 R?
您确定您的数据库服务器正在侦听您的 R 客户端吗? mysql 本机客户端可能会连接到本地套接字,而 R 则不然。