目标:同一个mysql实例,开启两个端口3307和3308。两个端口使用独立的数据文件。即实现“一库多用”。
环境:假设mysql安装在/usr/local/mysql目录下,管理mysql的用户是mysql:mysql。
操作:
1,首先关闭selinux!如果开启,修改mysql数据目录时会一直失败,报权限错误。关闭方法:
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,然后重启机器。
2,首先开启第一个端口3307,假设配置文件在mysql安装目录下,配置好各项参数,端口为3307,其他略。这一步其实就是普通的开启mysql操作:
cd /usr/local/mysql && ./bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql --slow_query_log &
3,为开启3308端口做准备。首先换个目录建数据文件夹。换目录的目的就是为了避免两个端口的数据文件在同一个分区时间久了磁盘空间可能吃紧。这里以换到/home目录下为例:
mkdir -p /home/mysql_3308/data
cp /usr/local/mysql/my.cnf /home/mysql_3308/
然后修改配置文件,重点注意端口为3308,数据文件目录是/home/mysql_3308/data,pid文件要与3307端口的不同,否则起不来。
4,很重要的一步,新建的文件夹别忘了给mysql用户权限:
chown -R mysql:mysql /home/mysql_3308
5,最后,启动新的端口:
cd /usr/local/mysql && ./bin/mysqld_safe --defaults-extra-file=/home/mysql_3308/my.cnf --user=mysql &
这里要注意的就是defaults-extra-file参数,和之前启动第一个3307端口是不同的。查看进程,如果同时存在3307和3308的mysql进程,则启动成功,就可以登录进去添加账号了。如果失败,可以查看错误日志文件(log-error文件),具体问题具体分析。