当前位置:网站首页>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
边栏推荐
猜你喜欢
elmo(BiLSTM-CRF+elmo)(Conll-2003 命名实体识别NER)
What is the difference between blue-green publishing, rolling publishing and gray publishing?
Quartus Prime硬件实验开发(DE2-115板)实验二功能可调综合计时器设计
The latest development of fed digital currency
Solution of discarding evaluate function in surprise Library
Choreographer全解析
趣谈网络协议
redis如何解决缓存雪崩、缓存击穿和缓存穿透问题
神经元与神经网络
crontab定时任务输出产生大量邮件耗尽文件系统inode问题处理
随机推荐
freeCodeCamp----time_ Calculator exercise
Basic knowledge learning record
Express中间件③(自定义中间件)
groutine
Chapter 15 new technologies of software engineering
低频量化之明日涨停预测
How does redis solve the problems of cache avalanche, cache breakdown and cache penetration
SSM project deployed in Alibaba cloud
Technologie zéro copie
Decentralized Collaborative Learning Framework for Next POI Recommendation
Crontab timing task output generates a large number of mail and runs out of file system inode problem processing
美联储数字货币最新进展
专题测试05·二重积分【李艳芳全程班】
leetcode--357. 统计各位数字都不同的数字个数
[code analysis (3)] communication efficient learning of deep networks from decentralized data
L2-024 部落 (25 分)
【vmware】vmware tools 地址
JS force deduction brush question 103 Zigzag sequence traversal of binary tree
基础知识学习记录
Express②(路由)