MySQL多实例概念
多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。
优点
MySQL多实例,可以通过多个端口向用户提供服务,充分利用一台服务器的闲置资源
缺点
无论是多少个端口提供服务,但始终使用的是一台服务器的资源,所以当访问量过大时,依然存在高并发的问题
安装部署
我这里以创建四个MySQL实例为例,监听的端口分别是3307,3308,3309,3310
1.解压MySQL安装包(获取地址在下边)
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
移动并重命名
mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql
2.在mysql目录下创建data目录
cd /usr/local/mysql
mkdir data
3.在data目录下创建四个实例的主目录
cd /usr/local/mysql/data/
mkdir {3307,3308,3309,3310}
4.添加mysql组和mysql组用户
groupadd mysql
useradd -r -g mysql mysql
5.初始化四个实例,分别执行
cd /usr/local/mysql/bin/
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307/ --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3308/ --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3309/ --user=mysql
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3310/ --user=mysql
6.为四个实例创建主配置文件my.cnf
cd /usr/local/mysql/data/3306
vi my.cnf
主配置文件内容
[client]
port=3307
socket=/usr/local/mysql/data/3307/mysql.sock
default_character_set=utf8
[mysqld]
port=3307
socket=/usr/local/mysql/data/3307/mysql.sock
datadir=/usr/local/mysql/data/3307
log-error=/usr/local/mysql/data/3307/error.log
pid-file=/usr/local/mysql/data/3307/mysql.pid
character_set_server=utf8
lower_case_table_names=1
autocommit=1
替换不同实例配置文件中的目录名
在vi或vim编辑器中执行命令:%s/被替换的目录名/要替换的目录名/g
如:
注意:要在每个实例的主目录中为每个实例都创建主配置文件,且目录名要和实例端口号对应
7.启动实例
cd /usr/local/mysql/bin/
./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3308/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3309/my.cnf &
./mysqld_safe --defaults-file=/usr/local/mysql/data/3310/my.cnf &
查看四个实例进程状态
ps -ef | grep mysql
可以看到,四个端口的MySQL实例都启动成功
8.修改数据库密码和赋予远程登录权限
这里我以端口号为3307的实例为例,其他实例只需修改命令中的端口号就可以了
cd /usr/local/mysql/bin/
# ./mysql -u用户名 -p -P端口 -h地址
./mysql -uroot -p -P3307 -h127.0.0.1
没有密码直接回车
执行命令修改密码
alter user 'root'@'localhost' identified by '密码';
授予远程登录权限
grant all privileges on *.* to root@'%' identified by '密码';
远程连接测试
别忘记要先关闭防火墙
到这里MySQL多实例的安装部署就完成了,手动撒花
有不对的地方还请指出呀,我们一起进步[嘻嘻]
MySQL安装包获取地址:https://pan.baidu.com/s/1sroOMqqbgibKotA6h7fypw
提取码:exl7
相关文章: