FreeBSD 下 MySQL 单机多实例的配置

by z9g

目标:
单台FreeBSD服务器,启多个MySQL服务, 每个服务有单独的pid和数据库目录
单个MySQL实例的情况下可以通过/usr/local/etc/rc.d/mysql-server启动MySQL实例。
要启动多个MySQL实例,可以复制/usr/local/etc/rc.d/mysql-server,然后稍作修改即可。

1. 建立数据库存放目录
mkdir /var/db/mysql0

2. 新建/usr/local/etc/rc.d/mysql-server-0
找到
: ${mysql_dbdir="/var/db/mysql"}

修改成
: ${mysql_dbdir="/var/db/mysql0"}

找到


command_args="--defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null 2>&1 &"

修改成

command_args="--defaults-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null 2>&1 &"

3. 新建my.cnf配置文件
# cp /etc/my.cnf /var/db/mysql0
# vi /var/db/mysql1/my.cnf

找到
[mysqld]
port = 3306
socket = /tmp/mysql.sock

修改成
[mysqld]
port = 3307
socket = /tmp/mysql0.sock

4. 启动新MySQL实例
/usr/local/etc/rc.d/mysql-server-0 start

5. 测试
mysql -h127.0.0.1 -P 3307

6. 添加更多的实例
依次遵循步骤1~5, 相应修改端口号(3307, 3308 …)和配置文件名(0, 1, …)即可