当前位置:网站首页>CentOS mysql多实例部署

CentOS mysql多实例部署

2022-04-23 14:00:00 白云碎里一蓑舟

一. 清除原始环境的mysql、mariadb

#查看是否有mysql的rpm包
rpm -qa|grep mysql
删除查询出来的包(根据实际情况删除)
rpm -e 名称

二. 安装多实例

#进入临时文件夹
cd /tmp
ls
#解压mysql压缩包
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
ls
#移动到安装目录
mv mysql-5.7.30-linux-glibc2.12-x86_64/ /usr/local/mysql
#进入安装目录
cd /usr/local/mysql
ls

#在系统创建mysql账号
groupadd -g 1002 mysql
useradd -u 1002 -g 1002 -M -s /sbin/nologin mysql
#验证mysql账号
id mysql

#添加环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile
source /etc/profile
#创建data存放目录
mkdir /data/mysql_platform/data
mkdir /data/mysql_storage/data
mkdir /data/mysql_production/data
mkdir /data/mysql_sale/data
mkdir /data/mysql_aggregate/data

#my.cnf的存放地址(自定义
在这里插入图片描述
#my.cnf配置

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#端口号(不能重复,通过端口号区分多实例
port=3302                       
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql_storage/data
#服务器的id(不能重复
server-id=102
#多实例通过此地址启动
socket=/data/mysql_storage/mysql.sock
# 错误日志存放目录
log_error=/data/mysql_storage/logs/mysql.log
# 二进制日志存放目录
log_bin=/data/mysql_storage/logs/mysql-bin
#二进制文件的格式
binlog-format=MIXED     
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#同步的数据库名称
replicate-do-db=storage_release
#创建slave_master_info的表
master-info-repository = table  
#创建mysql.slave_relay_info表来记录同步的位置信息
relay-log-info-repository = table

#其他实例的my.cnf配置同上

#将所有的.service文件存放在 /etc/systemd/system目录下
在这里插入图片描述
#修改defaults-file为其对应的my.cnf配置文件
在这里插入图片描述

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
#defaults-file my.cnf存放的路径
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql_storage/my.cnf

#其他实例的.servicef配置同上

#初始化文件
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql_platform/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql_storage/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql_production/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql_sale/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql_aggregate/data --basedir=/usr/local/mysql

#修改权限 -R整个文件夹 将整个文件夹拥有者权限给mysql组下的mysql用户
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql_*

#启动mysql--查看各数据库状态
systemctl status mysql_platform.service
systemctl status mysql_storage.service
systemctl status mysql_production.service
systemctl status mysql_sale.service
systemctl status mysql_aggregate.service

#依次启动数据库
systemctl start mysql_platform.service
systemctl status mysql_platform.service

systemctl start mysql_storage.service
systemctl status mysql_storage.service

systemctl start mysql_production.service
systemctl status mysql_production.service

systemctl start mysql_sale.service
systemctl status mysql_sale.service

systemctl start mysql_aggregate.service
systemctl status mysql_aggregate.service

#验证启动
netstat -lnp|grep 33
#连接数据库验证及修改root账号的连接权限。
#无密码使用 mysql -S /data/mysql_platform/mysql.sock
#有密码使用 mysql -u用户名 -p -S /data/mysql_platform/mysql.sock
mysql -S /data/mysql_platform/mysql.sock
	#查看账号信息
	select user,host from mysql.user;
	#设置root账号IP地址权限为所有IP
	update mysql.user set host='%' where user='root';
	#刷新权限
	flush privileges;
	#退出
	quit;
#其他几个数据库和上面操作一样。
mysql -S /data/mysql_storage/mysql.sock
mysql -S /data/mysql_sale/mysql.sock
mysql -S /data/mysql_production/mysql.sock
mysql -S /data/mysql_aggregate/mysql.sock

#设置开机启动
systemctl enable mysql_platform.service
systemctl enable mysql_storage.service
systemctl enable mysql_sale.service
systemctl enable mysql_production.service
systemctl enable mysql_aggregate.service

#关闭selinux
vim /etc/sysconfig/selinux  (进入后 i->编辑->esc->:wq)
将SELINUX修改为DISABLED,即SELINUX=DISABLED

#防火墙开端口
firewall-cmd --zone=public --add-port=3301/tcp --permanent
firewall-cmd --zone=public --add-port=3302/tcp --permanent
firewall-cmd --zone=public --add-port=3303/tcp --permanent
firewall-cmd --zone=public --add-port=3304/tcp --permanent
firewall-cmd --zone=public --add-port=3305/tcp --permanent
#重启防火墙
firewall-cmd --reload

#重启电脑测试自启
reboot

结束啦~
结束啦~

版权声明
本文为[白云碎里一蓑舟]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_49513507/article/details/123549521