MySQL多实例安装
2022/3/10 19:14:59
本文主要是介绍MySQL多实例安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL多实例安装
本文使用多配置文件(单独管理)和单配置文件(MySQL自带的多实例管理方式)的多实例安装,系统是CentOS7,数据库版本是MySQL5.7,本文为安装三个实例
实例规划:
实例 | port | server_id | datadir路径 | log_bin路径 |
---|---|---|---|---|
3307实例 | 3307 | 7 | /data/3307/data | /data/3307/binlog |
3308实例 | 3308 | 8 | /data/3308/data | /data/3308/binlog |
3309实例 | 3309 | 9 | /data/3309/data | /data/3309/binlog |
多配置文件方式
1.配置本地YUM仓库
搭建yum 仓库安装依赖包,MySQL依赖于该libaio库
[root@mysql /]# df -h [root@mysql /]# mount /dev/cdrom /mnt [root@mysql /]# cd /etc/yum.repos.d/ [root@mysql /]# mkdir bak #先将其他的yum的repo源,使用本地镜像源,备份到bak目录中 [root@mysql /]# mv * bak/ [root@mysql /]# vi local.repo #添加下面的内容到local.repo [centos] name=centos baseurl=file:///mnt gpgcheck=0 enable=1
安装所需依赖包
[root@mysql /]# yum -y install libaio [root@mysql /]# yum -y install autoconf
2.创建用户和组
添加用户和组,要是已经存在可以不创建
[root@mysql ~]# groupadd mysql [root@mysql ~]# useradd -r -g mysql mysql
3.创建所需目录
创建软件目录并授权,将软件上传到/app目录下并解压,解压后重命名为mysql
[root@mysql ~]# mkdir -p /app [root@mysql ~]# cd /app/ [root@mysql app]# ll -rw-r--r--. 1 mysql mysql 341523632 Jul 12 17:16 mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz [root@mysql app]# tar zxvf /app/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz [root@mysql app]# ll drwxr-xr-x. 13 root root 191 Jul 14 00:24 mysql-5.7.28-linux-glibc2.12-x86_64 [root@mysql app]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql [root@mysql app]# ll drwxr-xr-x. 9 root root 129 Jul 14 05:49 mysql [root@mysql /]# chown -R mysql:mysql /app
创建数据文件相关目录并授权,每个实例的信息存放在不同的目录下
[root@mysql /]# mkdir -p /data/330{7,8,9}/data [root@mysql /]# mkdir -p /data/330{7,8,9}/binlog [root@mysql /]# chown -R mysql:mysql /data/330*
4.准备三个配置文件
每个配置文件存放在本实例的数据目录下,配置文件配最简单的配置,不代表生产
4.13307实例配置文件
cat > /data/3307/my.cnf <<EOF [mysqld] basedir=/app/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.err port=3307 server_id=7 binlog_format=row log_bin=/data/3307/mysql-bin [mysql] prompt=db01 [\\d]> EOF
4.23308实例配置文件
cat > /data/3308/my.cnf <<EOF [mysqld] basedir=/app/mysql datadir=/data/3308/data socket=/data/3308/mysql.sock log_error=/data/3308/mysql.err port=3308 server_id=8 binlog_format=row log_bin=/data/3308/mysql-bin [mysql] prompt=db01 [\\d]> EOF
4.33309实例配置文件
cat > /data/3309/my.cnf <<EOF [mysqld] basedir=/app/mysql datadir=/data/3309/data socket=/data/3309/mysql.sock log_error=/data/3309/mysql.err port=3309 server_id=9 binlog_format=row log_bin=/data/3309/mysql-bin [mysql] prompt=db01 [\\d]> EOF
5.配置启动脚本
这里就不使用/etc/init.d/下的系统服务启动方式了,因为还要设计修改mysql.server启动脚本,为了方便直接使用Linux7中自带mysqld.service的systemd服务管理方式启动
先复制三份启动脚本
cp /etc/systemd/system/mysqld.service mysqld3307.service cp /etc/systemd/system/mysqld.service mysqld3308.service cp /etc/systemd/system/mysqld.service mysqld3309.service
5.13307实例启动脚本
cat >/etc/systemd/system/mysqld3307.service <<EOF [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 ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf LimitNOFILE = 5000 EOF
5.23308实例启动脚本
cat >/etc/systemd/system/mysqld3308.service <<EOF [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 ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf LimitNOFILE = 5000 EOF
5.33309实例启动脚本
cat >/etc/systemd/system/mysqld3309.service <<EOF [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 ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf LimitNOFILE = 5000 EOF
6.修改环境变量
[root@mysql mysql]# vi /etc/profile #再最后添加上下面的MySQL的bin路径信息 export PATH=/app/mysql/bin:$PATH #重新生效以下环境变量 [root@db01 ~]# source /etc/profile
7.初始化数据
为了防止启动出错,将/etc下的my.cnf修改备份以下
mv /etc/my.cnf /etc/my.cnf.bak
开始初始化参数
mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/app/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/app/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/app/mysql
8.启动数据库
启动所有实例
systemctl start mysqld3307.service systemctl start mysqld3308.service systemctl start mysqld3309.service
检查是否运行
#使用操作系统命令检查 netstat -lnp|grep 330 ps -ef|grep mysql #或者使用非交互式命令检查 mysql -S /data/3307/mysql.sock -e "select @@server_id" mysql -S /data/3308/mysql.sock -e "select @@server_id" mysql -S /data/3309/mysql.sock -e "select @@server_id"
9.修改密码
mysql -S /data/3307/mysql.sock -e "alter user root@'localhost' identified by '123';" mysql -S /data/3308/mysql.sock -e "alter user root@'localhost' identified by '123';" mysql -S /data/3309/mysql.sock -e "alter user root@'localhost' identified by '123';"
转载自 https://www.cnblogs.com/Garmin7H/p/15013165.html
官网下载二进制文件 https://www.cnblogs.com/gshelldon/p/13387602.html
这篇关于MySQL多实例安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南