Total Pageviews

Sunday 26 November 2017

同时运行多个MySQL实例


最近研究了下如何在一台机器上运行多份MySQL实例。这种做法最直观的应用就是一台服务器部署多个web应用,为保证互不干扰,需要创建多个MySQL实例(并非简单的多个database)。
其实做法很简单,基本思想是使用同一份程序+多份配置和数据文件即可。假设现在要新建一个MySQL实例(~/newdb),复制配置文件(my.cnf)到~/newdb/my.cnf,复制数据文件夹 /var/lib/mysql 到 ~/newdb/data,然后修改my.cnf文件,主要关注以下部分:
[client]
port                        = 3307
socket                    = /home/xxx/newdb/mysql.sock
[mysqld_safe]
socket                    = /home/xxx/newdb/mysql.sock
[mysqld]
pid-file                = /home/xxx/newdb/mysql.pid
socket                    = /home/xxx/newdb/mysql.sock
port                        = 3307
datadir                 = /home/xxx/newdb/data
即所有的sock、pid、log以及数据文件的路径都得修改,另外端口号也要修改。
然后修改文件夹权限:
chown -R mysql:mysql ~/newdb
最后,使用如下命令启动新数据库:
sudo /usr/bin/mysqld_safe –defaults-file=~/newdb/my.cnf &
使用如下命令停止数据库:
sudo kill cat ~/newdb/mysql.pid
注:如果系统运行了apparmor(比如ubuntu),需要修改相应的配置。详情见my.cnf文件的相关注释.

No comments:

Post a Comment