一、 Mysql多实例即一台服务器上运行多个Mysql服务进程linux查看进程,开启不同的服务端口,通过不同的socket 监听不同的服务端口来提供各自的服务。
二、 Mysql多例有以下几个特点:
1、有效利用服务器资源:通过多实例地配置,可以将服务器剩余的资源充分利用起来。
2、资源互相抢占问题:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降。
3、节约资源。
三、 安装前准备
1、服务器版本:CentOS 7
2、将/etc/selinux/config里的SELINUX设置成:disabled
3、下载mysql:
四、 安装与配置mysql多例
1、解压mysql
a、解压mysq:tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
b、移动mysql:sudo mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/mysql
2、创建mysql实例用户及文件
a、sudo useradd mysql -r -s /sbin/nologin
b、sudo mkdir -p /usr/local/mysql/mysql_files//数据导入导出目录
c、 创建多实例数据目录:sudo mkdir -p /data/mysql_data{1..3}
d、修改mysql目录的属组及用户:sudo chown root.mysql -R /usr/local/mysql
e、修改专用目录的属主及属组:sudo chown mysql.mysql -R /usr/local/mysql/mysql_files/data/mysql_data{1..3}
3、配置Mysql的配置文件/etc/f,内容如下:
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /tmp/mysql_multi.log
[mysqld1]
datadir = /data/mysql_data1#设置数据目录
socket = /tmp/mysql.sock1 #设置sock文件存放路径
port = 3306#设置监听开放端口
user = mysql#设置运行用户
performance_schema = off#关闭监控
innodb_buffer_pool_size = 32M#设置innodb 缓存大小
bind_address = 0.0.0.0#设置监听IP地址
skip-name-resolve = 0#关闭DNS反向解析
[mysqld2]
datadir = /data/mysql_data2
socket = /tmp/mysql.sock2
port = 3307
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
bind_address = 0.0.0.0
skip-name-resolve = 0
[mysqld3]
datadir = /data/mysql_data3
socket = /tmp/mysql.sock3
port = 3308
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
bind_address = 0.0.0.0
skip-name-resolve = 0
4、初始化各个实例:初始化完后会在日志中生成密码,记得保存linux安装多个桌面环境变量,一会要用。
a、sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1
b、/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2
c、 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3
5、开启各实例的SSL连接
a、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1
b、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2
c、 sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3
6、复制多实例脚本到服务管理目录下
a、sudo cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
7、给予脚本可执行权限:sudo chmod +x /etc/init.d/mysqld_multi
8、加入service服务管理: sudo chkconfig --add mysqld_multi
9、添加环境变量
a、在文件最后面添加内容:sudo vim /etc/profile
## SETUP MYSQL’S PATH
export MYSQL_HOME=/usr/local/mysql
export PATH=${MYSQL_HOME}/bin:$PATH
b、使修改的配置文件生效:source /etc/profile
五、 测试实例
1、查看多个实例状态:mysqld_multi report
2、启动各个实例 : sudo mysqld_multi start
3、查看实例的监听端口:sudo ss -tulpn|grep mysqld
4、连接实例1:
a、sudo mysql -S /tmp/mysql.sock1 -p前面生成的密码
b、进去后修改root密码: set password=password('123456');
c、 使修改生效:flush privileges;
5、另外两个实例的操作方法与实例1一致linux解压命令,不再赘述。
6、 允许远程连接mysql:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
其中,root 是用户名,% 表示所有人都可以访问linux安装多个桌面环境变量,password是密码
至此,centos7安装配置mysql5.7成功
原文链接: