ZhangZhihui's Blog  

这个报错说明 MySQL 客户端没有使用 TCP/IP 去连接远程数据库,而是默认尝试用 UNIX socket 文件 /tmp/mysql.sock 去连接本地 MySQL 实例。
出现这种情况的常见原因和解决办法如下:


1. 连接字符串写法不正确

你用的语法:

mysql user:password@ip:port/db

这种写法不是标准的 MySQL CLI 语法。MySQL 客户端不会按这个去解析。

正确的用法是:

mysql -h ip -P port -u user -p db

运行后会提示输入密码。
如果要直接带上密码,可以这样(注意 -p 和密码之间不能有空格):

mysql -h ip -P port -u user -ppassword db

2. 默认没有指定 -h

如果只写:

mysql -u user -p

客户端会尝试连本地 socket /tmp/mysql.sock,所以报错。
一定要写上 -h ip,才会走 TCP/IP。


3. 防火墙或远程连接权限

即使写对了命令,也可能遇到:

  • 远程 MySQL 端口(默认 3306)没开放;

  • user 账户没有远程登录权限(user@'%' 而不是 user@'localhost');

  • MySQL 配置文件 my.cnfbind-address 限制了只监听本地。


✅ 建议你先试一下:

mysql -h 192.168.1.100 -P 3306 -u myuser -pmypassword mydb

 

posted on 2025-10-11 09:24  ZhangZhihuiAAA  阅读(54)  评论(0)    收藏  举报