如何在 ubuntu 中更改 mysql 端口号

如何在 ubuntu 中更改 mysql 端口号

在 Ubuntu 13.10 中,如何将 mysql 的端口号从 3306 更改为我选择的数字 (1023)?我尝试通过编辑文件中的端口号:/etc/mysql/my.cnf。但更改后,mysql 无法启动。请指导我,以便我可以修复此问题。

答案1

可能有多个文件包含 mysql 配置。它们的完整路径可能存在于文件中,/etc/mysql/my.cnf以 开头的行表示!includedir。作为示例,我的路径为:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

因此,列出第二个目录后,我发现了一个名为的文件:

/etc/mysql/mysql.conf.d/mysqld.cnf

因此您必须更改此文件中的端口号。

对您来说最好的方法是查看文件:

/etc/my.cnf

或者

/etc/mysql/my.cnf

然后改变港口所包含目录之一中的文件中的数字我的cnf文件。

答案2

对于Ubuntu Desktop版本来说18.04,编辑该/etc/mysql/mysql.conf.d/mysqld.cnf文件就足够了:

从:

[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
log-error   = /var/log/mysql/error.log

到:

[mysqld]
port        = 3308 (or other number) <-------------------
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
log-error   = /var/log/mysql/error.log

最后,必须通过sudo systemctl restart mysql在终端中运行以下命令来重新启动服务器:。

您可以通过运行以下命令来确认新设置:SHOW VARIABLES LIKE '%port%';MySQL Consolemysql>)中,它将生成类似如下的输出:

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| admin_port               | 33062 |
| large_files_support      | ON    |
| mysqlx_port              | 33060 |
| mysqlx_port_open_timeout | 0     |
| port                     | 3308  |
| report_host              |       |
| report_password          |       |
| report_port              | 3308  |
| report_user              |       |
| require_secure_transport | OFF   |
+--------------------------+-------+
10 rows in set (0.02 sec)

正如您所见,我现在拥有的port值是:3308

答案3

MySQL 服务器和客户端使用一个名为 my.cnf 的文件。您需要打开 /etc/my.cnf(全局 mysqld 配置文件)来指定新端口。MySQL 更改默认端口

打开/etc/my.cnf 文件:

# vi /etc/my.cnf

设置新端口5123:

port=5123

这是我的示例 /etc/my.cnf 文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=5123
old_passwords=1
bind = 10.10.29.66
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 100M
max_allowed_packet = 1M
thread_cache_size = 8
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
local-infile=0
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqldump]
quick
max_allowed_packet = 16M

保存并关闭文件。重新启动mysqld:

# service mysqld restart

请注意,一旦端口发生变化,您需要更新所有 php、perl、python 脚本,包括 iptables 脚本。

答案4

*更新”——请参阅下面 Bert 的回答.. 是的,已经对 my.cnf 做了三处更改,其中 2 处为端口,并将用户更改为“root”,是的,它从端口 1023 启动... netstat -tln 显示 1023 为监听器.. 感谢 Bert...

刚刚尝试了 1023 ... 并注意到“启动失败”消息... 检查后发现 1023 是保留的 1023 TCP UDP 保留[1] 官方

您必须使用另一个号码......soz......

请记住,在 /etc/mysql/my.cnf 中有“两个”地方可以更改 mysql 端口号

首先:

[客户端] 端口 = 1234

第二:

[mysqld]端口 = 1234

然后重新启动服务...希望这也有帮助...刚才我测试了一下...

相关内容