这个报错说明 MySQL 客户端没有使用 TCP/IP 去连接远程数据库,而是默认尝试用 UNIX socket 文件 /tmp/mysql.sock
去连接本地 MySQL 实例。
出现这种情况的常见原因和解决办法如下:
1. 连接字符串写法不正确
你用的语法:
这种写法不是标准的 MySQL CLI 语法。MySQL 客户端不会按这个去解析。
正确的用法是:
运行后会提示输入密码。
如果要直接带上密码,可以这样(注意 -p
和密码之间不能有空格):
2. 默认没有指定 -h
如果只写:
客户端会尝试连本地 socket /tmp/mysql.sock
,所以报错。
一定要写上 -h ip
,才会走 TCP/IP。
3. 防火墙或远程连接权限
即使写对了命令,也可能遇到:
-
远程 MySQL 端口(默认 3306)没开放;
-
user
账户没有远程登录权限(user@'%'
而不是user@'localhost'
); -
MySQL 配置文件
my.cnf
里bind-address
限制了只监听本地。
✅ 建议你先试一下: