当前位置: 代码网 > it编程>数据库>Mysql > Linux下MySQL常用登录方式及Socket排查指南

Linux下MySQL常用登录方式及Socket排查指南

2026年08月28日 Mysql 我要评论
linux 服务器上登录 mysql,常用方式主要有两类:unix socket 本地登录tcp/ip 登录如果 mysql 使用非默认端口或非默认 socket,直接执行 mysql -uroot

linux 服务器上登录 mysql,常用方式主要有两类:

  • unix socket 本地登录
  • tcp/ip 登录

如果 mysql 使用非默认端口或非默认 socket,直接执行 mysql -uroot -p 可能会连接失败。本文整理常见登录方式及快速排查方法。

一、本地 socket 登录

最常见的方式:

mysql -uroot -p

这种方式默认通过 unix socket 连接本机 mysql。

如果 mysql 使用的是自定义 socket,需要明确指定:

mysql -uroot -p --socket=/app/data/mysql/13310/run/mysql.sock

如何查找实际 socket

首先查看 mysqld 进程:

ps -ef | grep mysqld | grep -v grep

如果启动参数中直接看到:

--socket=/app/data/mysql/13310/run/mysql.sock

那么这个就是实际 socket。

如果没有 --socket,但看到:

--defaults-file=/app/mysql/conf/my.cnf

说明相关参数可能写在配置文件中,继续查询:

grep -n "socket" /app/mysql/conf/my.cnf

如果仍然找不到,可以从系统层面查:

find /app -type s -name "*.sock" 2>/dev/null

或者:

ss -xl | grep mysql

排查思路可以记成:

ps 查看 mysqld
    ↓
找 --socket
    ↓
没有则找 --defaults-file
    ↓
查看 my.cnf
    ↓
仍没有则 find / ss

二、本机 tcp 登录

如果不想使用 socket,也可以直接走 tcp:

mysql -uroot -p -h127.0.0.1 -p13310

其中:

-h127.0.0.1    数据库地址
-p13310        mysql端口

需要特别注意:

mysql -uroot -p -p13310

不代表一定通过 tcp 连接。

如果没有指定 -h,linux 下 mysql 客户端通常仍会尝试通过 socket 连接。

例如可能报:

error 2002 (hy000):
can't connect to local mysql server through socket '/tmp/mysql.sock'

因此,如果明确想走 tcp,建议写完整:

mysql -uroot -p -h127.0.0.1 -p13310

三、远程 tcp 登录

从其他服务器连接 mysql:

mysql -u用户名 -p -h数据库ip -p端口

例如:

mysql -dbuser -p -h10.1.10.20 -p13310

连接前可以先测试网络端口:

nc -vz 10.1.10.20 13310

远程连接需要同时满足:

网络可达
+
mysql端口正常监听
+
防火墙允许访问
+
数据库账号允许对应host登录

四、通过配置文件免密登录

linux 数据库服务器上也经常使用:

/root/.my.cnf

例如:

[client]
user=root
password="******"
socket=/app/mysql/run/mysql.sock

建议权限:

chmod 600 /root/.my.cnf

配置完成后可以直接:

mysql

这种方式比较适合:

备份脚本
巡检脚本
定时任务

不需要把密码直接写在命令行中。

五、登录后确认数据库实际配置

登录成功后,可以快速查看:

show variables like 'socket';
show variables like 'port';
show variables like 'datadir';

也可以一次查看主要信息:

show variables like 'socket';
show variables like 'port';
show variables like 'datadir';

如果是 mysql 从库:

show replica status\g

重点关注:

source_host
source_port
replica_io_running
replica_sql_running
seconds_behind_source
last_io_error
last_sql_error

六、常用命令速查

默认本地登录

mysql -uroot -p

指定 socket

mysql -uroot -p --socket=/实际路径/mysql.sock

本机 tcp

mysql -uroot -p -h127.0.0.1 -p13310

远程 tcp

mysql -u用户 -p -h数据库ip -p端口

查看 mysql 启动参数

ps -ef | grep mysqld | grep -v grep

查找 socket

find /app -type s -name "*.sock" 2>/dev/null

查看监听端口

ss -lntp | grep mysqld

总结

linux 登录 mysql 主要就是两种方式:

socket
或
tcp/ip

如果直接:

mysql -uroot -p

提示找不到 /tmp/mysql.sock,不要首先怀疑密码,而应该检查 mysql 实际使用的 socket。

最实用的排查顺序是:

ps 查看 mysqld
→ 找 socket / defaults-file
→ 确认实际 socket 或端口
→ 选择 socket 或 tcp 登录

其中最容易混淆的一点是:

只写 -p端口 并不会强制 mysql 使用 tcp;明确走 tcp 时,应使用 -h127.0.0.1 -p端口

以上就是linux下mysql常用登录方式及socket排查指南的详细内容,更多关于mysql登录方式及socket排查的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com