Ubuntu系统下systemctl管理的mysqld v8如何修改默认端口
如何修改Ubuntu上systemctl管理的MySQL 8服务端口
Ubuntu下MySQL 8的配置文件结构和旧版略有不同,默认端口配置不在根目录的my.cnf里,而是在专门的子配置文件中。以下是两种可行的修改方法:
方法一:修改MySQL配置文件(推荐)
这是官方推荐的方式,配置更稳定,不会被软件更新覆盖:
- 打开MySQL服务的主配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - 在
[mysqld]配置段中,添加或修改port参数,比如改成3307:[mysqld] port = 3307 # 其他原有配置保持不变 - 保存并退出编辑器(nano中按
Ctrl+O确认保存,Ctrl+X退出) - 重启MySQL服务使配置生效:
sudo systemctl restart mysql - 验证端口是否生效:
输出中应该能看到sudo netstat -tulpn | grep mysqldLISTEN状态的新端口。
方法二:修改systemd服务配置(备选)
如果确实需要通过命令行参数传递端口(不推荐,更新可能覆盖),可以修改systemd的服务定义:
- 打开systemd服务的临时编辑文件:
sudo systemctl edit mysql - 在打开的文件中添加以下内容,替换成你要的端口:
注意:必须先清空原有的[Service] ExecStart= ExecStart=/usr/sbin/mysqld --port=3307 $MYSQLD_OPTSExecStart(第一行ExecStart=),再重新定义带端口参数的启动命令。 - 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload - 重启MySQL服务:
sudo systemctl restart mysql - 验证端口是否生效(同方法一的验证命令)
注意事项
- 修改端口后,客户端连接时需要指定新端口,例如:
mysql -u root -p --port=3307 - 修改前确认新端口未被其他服务占用,可通过
ss -tulpn | grep 你的端口号检查 - 优先使用方法一,因为systemd服务配置的修改可能在MySQL包更新时被重置
内容的提问来源于stack exchange,提问作者Not a machine
相关产品推荐
相关产品推荐

