mysql -----多实例
什么是实例?
- 进程+多个线程+预分配的内存结构
MySQL多实例:
- 多个进程+多个线程+多个预分配内存结构
多个配置文件:
- 多个端口
- 多个数据目录
- 多个socket文件
创建多实例:
- 创建多个数据目录
#在根目录data下创建目录3307~3309 [root@elk01 ~]# mkdir -p /data/330{7..9}
- 创建多个配置文件
vim /data/3307/my.cnf #编辑文件: [mysqld] basedir = /usr/local/mysql datadir = /data/3307/data port = 3307 server_id = 7 log-bin = /data/3307/data/mysql-bin log_error = /data/3307/data/mysql.err socket = /data/3307/data/mysql.sock vim /data/3308/my.cnf #编辑文件: [mysqld] basedir = /usr/local/mysql datadir = /data/3308/data port = 3308 server_id = 8 log-bin = /data/3308/data/mysql-bin log_error = /data/3308/data/mysql.err socket = /data/3308/data/mysql.sock vim /data/3309/my.cnf #编辑文件: [mysqld] basedir = /usr/local/mysql datadir = /data/3309/data port = 3309 server_id = 9 log-bin = /data/3309/data/mysql-bin log_error = /data/3309/data/mysql.err socket = /data/3309/data/mysql.sock
- 切换目录
[root@oldboy data]# cd /usr/local/mysql/scripts/
- 初始化
#3307初始化 [root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data #3308初始化 [root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data #3309初始化 [root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data
- 启动MySQL
[root@elk01 scripts]# mysqld_safe --defaults-file=/data/3307/my.cnf & [root@elk01 scripts]# mysqld_safe --defaults-file=/data/3308/my.cnf & [root@elk01 scripts]# mysqld_safe --defaults-file=/data/3309/my.cnf &
- 查看启动端口
[root@oldboy scripts]# netstat -lntup
- 连接mysql
[root@oldboy scripts]# mysql -uroot -p -S /data/3307/data/mysql.sock [root@oldboy scripts]# mysql -uroot -p -S /data/3308/data/mysql.sock [root@oldboy scripts]# mysql -uroot -p -S /data/3308/data/mysql.sock
- 设置密码
[root@elk01 scripts]# mysqladmin -uroot -S /data/3307/data/mysql.sock password '3307' [root@elk01 scripts]# mysqladmin -uroot -S /data/3308/data/mysql.sock password '3308' [root@elk01 scripts]# mysqladmin -uroot -S /data/3309/data/mysql.sock password '3309'
- 查看
[root@elk01 scripts]# mysql -uroot -p3307 -S /data/3307/data/mysql.sock -e "show variables like 'server_id'"
- 创建快捷开启
#3307 [root@elk01 scripts]# vim /usr/local/bin/mysql3307 #编辑文件: mysql -uroot -p3307 -S /data/3307/data/mysql.sock #确认: [root@elk01 scripts]# chmod +x /usr/local/bin/mysql3307 #3308 [root@elk01 scripts]# vim /usr/local/bin/mysql3308 #编辑文件: mysql -uroot -p3308 -S /data/3308/data/mysql.sock #确认: [root@elk01 scripts]# chmod +x /usr/local/bin/mysql3308 #3309 [root@elk01 scripts]# vim /usr/local/bin/mysql3309 #编辑文件: mysql -uroot -p3309 -S /data/3309/data/mysql.sock #确认: [root@elk01 scripts]# chmod +x /usr/local/bin/mysql3309
- 现在开启
mysql3307 mysql3308 mysql3309
PS:多实例使用 必须先 连接 mysql ( mysql -uroot -p -S /data/3307/data/mysql.sock ) ------- > mysql3307