多实例的实质
在一台机器上开启多个mysql的服务端口(3306,3307),允许多个mysql服务进程,这些服务进程通过不同的sccket监听不同的服务端口来提供各自的服务。
安装:
1、安装cmake及mysql依赖包
yum install ncurses-devel -y
yum install libaio-devel -y
2、创建mysql多实例数据文件目录
【注:若已经安装单实例】
pkill mysqld //杀掉mysql的单实例
cd /etc/init.d/mysqld //删除单实例的启动命令
mkdir -p /data/{3306,3307}/data //创建3306,3307的数据文件目录。
tree /data //查看结构
chown -R mysql.mysql /data //授权data目录
3、创建软件安装位置
mkdir /app/database //从其他ip下拷一份
解压
tar xf mysql_.....
重命名:
mv mysql_..... mysql
4、创建mysql配置文件与环境变量
分别在/data/3306与/data/3307下创建my.cnf文件 (主要修改port和server_id)
##将/tmp/my.cnf 重命名:mv /tmp/my.cnf /tmp/my.cnf.bak
cd /data/3306 //3307同理
touch mycnf
vim /data/3306/my.cnf
修改环境变量
cd /etc/profile
添加:echo 'export PATH=/application/mysql/bin:$PATH'
6、初始化数据文件
初始化命令同单实例,只是改变了数据路径
在/app/mysql/scriopts下执行
【5.7以后的】[data/3306/data一定要为空,不空一定会失败]
mysql --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/data
mysql --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3307/data
【5.6以前的】
./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/data/3306/data --defaults-file=/data/3306/my.cnf
./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/data/3307/data --defaults-file=/data/3307/my.cnf
/初始化的目的就是为了生成存放文件的地方,在/data下生成一些系统化的文件
7、配置开机自启动脚本与启动多实例
cd /etc/systemd/system
touch mysql3306.server //3307同理
vim mysql3306.server
启动多实例:
systemctl start mysqld3307.service
最后通过netstat -lntup将端口显示出来检查
启动数据库
mysql -S /data/3306/mysql.sock //多实例的登录一定要指定特定的socket
mysql -S /data/3307/mysql.sock //多实例的登录一定要指定特定的socket