搞数据备份的时候,很多人只盯着文件路径和时间计划,结果一连数据库就卡住了。问题出在哪?可能是那个不起眼的端口号没填对。
MySQL 默认用的是 3306 端口
只要你没改过配置,MySQL 装好之后默认监听的就是 3306 端口。不管是本地开发,还是服务器上跑服务,大多数情况都是这个数字。比如你写个脚本要从远程拉数据库快照,主机地址后面得带上端口才连得上:
mysql -h 192.168.1.100 -P 3306 -u backup_user -p注意这里大写的 -P 后面跟的就是端口号,不是小写的 -p(那是密码)。少写一个字母,命令就跑不起来。
什么时候端口会变?
有些环境不会用默认端口。比如公司为了安全,把 MySQL 换成 3307 或者别的高位端口;或者一台服务器上跑了多个 MySQL 实例,靠不同端口区分。这时候你还按 3306 连,自然超时失败。
遇到这种情况,得去查配置文件。Linux 上一般是 /etc/mysql/my.cnf 或 /etc/my.cnf,找 port 这一行:
<!-- 配置文件里的端口设置 -->
[mysqld]
port = 3307改了配置得重启服务,不然新端口不生效。
备份脚本里记得显式指定端口
写自动化备份任务时,别假设端口永远是 3306。哪怕现在是,以后迁移服务器可能就不是了。在连接字符串里明确写出来,能省掉不少半夜爬起来排查故障的麻烦。
比如用 mysqldump 备份:
mysqldump -h localhost -P 3306 -u root -p mydb > backup.sql就算本地连,加上 -P 3306 也更稳妥。特别是容器环境下,MySQL 可能映射在任意主机端口上,比如 Docker 把容器的 3306 映成了宿主机的 4306,那就必须连 4306 才行。
端口看着是个小数字,但在数据备份这种关键流程里,错一位都可能让整个恢复计划泡汤。检查配置的时候多看一眼,比出事后再翻日志强多了。