MySQL多实例配置
1.什么是多实例
1)多套后台进程+线程+内存结构
安装一套MySQL的程序,
启动多个mysql服务(每一个服务就称作为一个实例)
端口 3306 3307 3308 3309
socket
数据库文件存放位置
pid文件存放位置
错误日志存放位置
server_id不一致
配置文件
2)多个配置文件
a.多个端口
b.多个socket文件
c.多个日志文件
d.多个server_id
3)多套数据
开始操作
创建数据目录
mkdir -p /data/330{7…9}
创建配置文件
touch /data/330{7…9}/my.cnf
编辑3307配置文件
vim /data/3307/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql-err.log
server_id=7
port=3307
[client]
socket=/data/3307/mysql.sock
编辑3308配置文件
vim /data/3308/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql-err.log
server_id=8
port=3308
[client]
socket=/data/3308/mysql.sock
编辑3309配置文件
vim /data/3309/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql-err.log
server_id=9
port=3309
[client]
socket=/data/3309/mysql.sock
修改目录权限
chown -R mysql.mysql /data/
初始化3307数据
/usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql
–datadir=/data/3307/data
初始化3308数据
/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql
–datadir=/data/3308/data ata
初始化3309数据
/usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql
–datadir=/data/3309/data
启动多实例
mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3309/my.cnf &
查看server_id
mysqladmin -uroot -p password ‘abc123’ -S /data/3307/mysql.sock
mysql -uroot -p -S /data/3307/mysql.sock -e “show variables like ‘server_id’”
mysqladmin -uroot -p password ‘abc123’ -S /data/3308/mysql.sock
mysql -uroot -p -S /data/3308/mysql.sock -e “show variables like ‘server_id’”
mysqladmin -uroot -p password ‘abc123’ -S /data/3309/mysql.sock
mysql -uroot -p -S /data/3309/mysql.sock -e “show variables like ‘server_id’”
出现server_id 说明成功