mysql作为常用的关系型数据库,默认使用3306端口对外提供服务。当服务器上存在多个mysql实例,或者该端口被其他程序占用,又或者出于安全加固的考虑,我们都需要修改mysql的默认端口。不同操作系统下mysql的端口配置方式略有差异,下面分别说明具体的操作步骤。

Linux系统下修改mysql端口
Linux系统中mysql的配置文件通常是my.cnf,一般存放在/etc/目录下,部分自定义安装的实例可能在/usr/local/mysql/etc/或者mysql数据目录下。
步骤1:编辑配置文件
使用文本编辑器打开my.cnf文件,找到[mysqld]配置段,如果没有则手动添加该段,在段内添加port配置项,指定你需要的端口号,注意端口号范围是1024到65535,且不要和其他已占用端口冲突。
[mysqld] # 设置mysql监听的端口,默认是3306,这里修改为3307 port=3307 # 其他原有配置保留,不要删除 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
步骤2:重启mysql服务
修改完配置文件后,需要重启mysql服务让配置生效,不同Linux发行版的重启命令略有不同:
- CentOS、RHEL系统:
systemctl restart mysqld - Ubuntu、Debian系统:
systemctl restart mysql
步骤3:验证端口是否生效
重启完成后,可以通过以下命令查看mysql是否在新的端口上监听:
# 查看3307端口的监听情况,替换为你自己设置的端口 netstat -tlnp | grep 3307 # 或者使用ss命令 ss -tlnp | grep 3307
如果输出结果中包含mysqld进程,说明端口修改成功。
Windows系统下修改mysql端口
Windows系统中mysql的配置文件通常是my.ini,一般存放在mysql的安装根目录,或者C:ProgramDataMySQLMySQL Server x.x目录下,注意ProgramData是隐藏目录,需要开启显示隐藏文件才能看到。
步骤1:编辑配置文件
用记事本或者Notepad++等编辑器打开my.ini,同样找到[mysqld]配置段,添加或修改port配置项:
[mysqld] # 设置mysql端口为3307 port=3307 # 其他原有配置保留 basedir="C:/Program Files/MySQL/MySQL Server 8.0/" datadir="C:/ProgramData/MySQL/MySQL Server 8.0/Data"
步骤2:重启mysql服务
按下Win+R组合键,输入services.msc打开服务管理界面,找到名称为MySQL或者MySQL80之类的服务,右键选择重启。
步骤3:验证端口
打开命令提示符,输入以下命令查看端口监听情况:
# 查看所有端口监听,过滤3307 netstat -ano | findstr 3307
如果看到对应的端口和mysqld进程,说明修改成功。
修改端口后的连接注意事项
修改端口后,所有连接mysql的客户端都需要指定新的端口号,否则会连接失败。比如使用mysql命令行客户端连接时,需要添加-P参数指定端口:
# 连接端口为3307的mysql实例,替换用户名和端口 mysql -u root -p -P 3307
如果是应用程序连接mysql,也需要在连接字符串中修改端口配置,比如JDBC连接字符串需要调整为:
// 修改url中的端口为3307 String url = "jdbc:mysql://127.0.0.1:3307/test_db?useSSL=false&serverTimezone=UTC";
常见问题及解决方法
- 问题1:修改后重启mysql失败。首先检查配置文件语法是否正确,有没有多余的空格或者符号错误,其次检查指定的端口是否被其他程序占用,如果被占用换一个端口即可。
- 问题2:重启成功但端口没有变化。检查修改的配置文件是否是mysql当前使用的配置文件,部分实例可能有多个配置文件,需要确认mysql加载的配置文件路径,可以通过
mysqld --help --verbose | grep my.cnf命令查看mysql加载配置文件的顺序。 - 问题3:连接提示拒绝访问。除了检查端口是否正确,还要确认mysql是否允许远程连接,以及用户权限是否配置正确。