简单说明
mysql多实例是指在同一台服务器上创建多个数据库服务,意义在于提高硬件资源的利用率。
环境准备
主机名:mysql
IP地址:192.168.11.132
mysql二进制版本:5.7.40
软件下载地址:
MySQL :: Download MySQL Community Server (Archived Versions)
安装配置
下载
[root@mysql ~]# yum -y install libaio
[root@mysql ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
解压、设置环境变量、创建mysql目录
[root@mysql ~]# tar xf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
[root@mysql ~]# mv mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/mysql
[root@mysql ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/bashrc
[root@mysql ~]# source /etc/bashrc
[root@mysql ~]# mkdir /mysql
添加mysql用户,多实例需要以mysql的身份运行
[root@mysql ~]# useradd mysql
部署配置文件(部署3个多实例,即一台服务器上启动三个数据库服务)
[root@mysql ~]# cat /etc/my.cnf
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
user=root
[mysqld1]
datadir=/mysql/dir1
port=3308
pid-file=/mysql/dir1/mysqld1.pid
log-error=/mysql/dir1/mysqld1.err
socket=/mysql/dir1/mysqld1.sock
[mysqld2]
datadir=/mysql/dir2
port=3309
pid-file=/mysql/dir2/mysqld2.pid
log-error=/mysql/dir2/mysqld2.err
socket=/mysql/dir2/mysqld2.sock
[mysqld3]
datadir=/mysql/dir3
port=3310
pid-file=/mysql/dir3/mysqld3.pid
log-error=/mysql/dir3/mysqld3.err
socket=/mysql/dir3/mysqld3.sock
测试使用
启动多实例(注意保留每个实例的临时密码),数据目录会自动创建,不用手动创建。
[root@mysql ~]# mysqld_multi start 1
[root@mysql ~]# mysqld_multi start 2
[root@mysql ~]# mysqld_multi start 3



使用每个实例的临时密码连接对应数据库并修改密码
[root@mysql ~]# mysql -uroot -pRzBywA4K=uei -S /mysql/dir1/mysqld1.sock
[root@mysql ~]# mysql -uroot -p'f5huPg)eFit2' -S /mysql/dir2/mysqld2.sock
[root@mysql ~]# mysql -uroot -p'Gepl?1QdqKyu' -S /mysql/dir3/mysqld3.sock



查看端口连接情况,并关闭多实列再次查看

[root@mysql ~]# mysqld_multi --user=root --password='mysqld1' stop 1
[root@mysql ~]# mysqld_multi --user=root --password='mysqld2' stop 2
[root@mysql ~]# mysqld_multi --user=root --password='mysqld3' stop 3

到此mysql多实例基本操作就已经全部完成。
775

被折叠的 条评论
为什么被折叠?



