10

如何在同一台机器上为 MySQL 配置两个不同的端口?我知道默认端口是3306。但我也想配置3307和3308。可以吗?

一个奖金问题与当前一个;)

我们可以为不同的数据库分配不同的端口,也可以分别分配/创建凭证吗?

4

5 回答 5

9

您可以使用该--port=port_num选项。在这里查看有关如何配置多个 mysql 实例的更多信息。

于 2013-09-30T13:32:56.237 回答
7

您可以启动多个 mysql 实例:

mysqld_safe --defaults-file=/path/to/my.cnf1
mysqld_safe --defaults-file=/path/to/my.cnf2
mysqld_safe --defaults-file=/path/to/my.cnf3

并更改每个 my.cnf 的 [mysqld] 部分中的端口参数。

如果您只想拥有一个 mysqld 进程/数据库,您可以使用端口重定向(使用 linux):

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3307 -j REDIRECT --to-port 3306
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3308 -j REDIRECT --to-port 3306
于 2013-09-30T13:37:40.443 回答
5

您可以复制/etc/mysql/my.cnf,更改其中的端口并更改数据目录的路径,因为我很确定您不能从同一个目录提供超过 1 个 mysql 实例。

检查http://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html

前任 :

cp /etc/mysql/my.cnf /etc/mysql/my-3307.cnf
//edit my-3307.cnf, for example
port = 3307
basedir = /var/lib/mysql-3307
datadir = /var/lib/mysql-3307
//end-edit
mysql_upgrade --defaults-file=/etc/mysql/my-3307.cnf #checks the syntax and creates the dirs you need.
#start mysqld
mysqld --defaults-file=/etc/mysql/my-3307.cnf
于 2013-09-30T13:42:31.830 回答
1

mysqld_multi是迄今为止处理不同 mysql 实例的最佳方式。

一些更有用的提示:

  • mysqld_multi --example
  • /var/lib/mysql2如果遇到奇怪的权限错误,请检查 apparmor 是否阻止 mysql 访问。
于 2014-01-02T16:33:28.780 回答
0

我正在使用 CentOS。不是太简单,

  1. 编辑文件/etc/my.cnf,搜索并更改或添加行: port= port_number
  2. semanage port -a -t mysqld_port_t -p tcp port_number
  3. 重启 MySQL 服务器。服务 mysqld 重启
于 2016-03-05T05:49:39.010 回答