### mysql多实例启动示例
环境准备
​```bash
#创建多实例目录
[root@db02 ~]# mkdir -p /data/330{7,8,9}/data
[root@db02 ~]# tree /data
/data
├── 3307
│ └── data
├── 3308
│ └── data
└── 3309
└── data
#准备配置文件
3307:
[root@db02 ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3307/data
port=3307
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
pid_file=/data/3307/mysql.pid

3308
[root@db02 ~]# vim /data/3308/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
pid_file=/data/3308/mysql.pid

3309
[root@db02 ~]# vim /data/3309/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3309/data
port=3309
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
pid_file=/data/3309/mysql.pid

# 目录结构
[root@db02 ~]# tree /data/
/data/
├── 3307
│ ├── data
│ └── my.cnf
├── 3308
│ ├── data
│ └── my.cnf
└── 3309
  ├── data
  └── my.cnf
# 多实例初始化
[root@db02 ~]# cd /app/mysql/scripts/
[root@db02 scripts]# ./mysql_install_db --defaults-file=/data/3307/my.cnf --basedir=/app/mysql --datadir=/data/3307/data
[root@db02 scripts]# ./mysql_install_db --defaults-file=/data/3308/my.cnf --basedir=/app/mysql --datadir=/data/3308/data
[root@db02 scripts]# ./mysql_install_db --defaults-file=/data/3309/my.cnf --basedir=/app/mysql --datadir=/data/3309/data
## 查看目录结构
[root@db02 scripts]# tree /data/ -L 2
/data/
├── 3307
│ ├── data
│ ├── my.cnf
│ └── mysql.log
├── 3308
│ ├── data
│ ├── my.cnf
│ └── mysql.log
└── 3309
├── data
├── my.cnf
└── mysql.log
## 授权
[root@db02 scripts]# chown -R mysql.mysql /data
## 多实例启动
/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf --user=mysql
#编写启动脚本  3308和3309复制修改即可
[root@db02 system]# vim /usr/lib/systemd/system/mysql3307.service
[Unit]
Description=mysqld
[Service]
#Type=notify
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf --user=mysql
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
[root@db02 system]# systemctl daemon-reload
[root@db02 system]# systemctl start mysql3307
## 多实例创建密码
[root@db02 system]# mysqladmin -uroot -p -S /data/3307/mysql.sock password '123'
## 连接多实例
[root@db02 system]# mysql -uroot -p123 -S /data/3307/mysql.sock
#创建命令
[root@db02 system]# vim /usr/local/bin/mysql3307
mysql -uroot -p123 -S /data/3307/mysql.sock
[root@db02 system]# chmod +x /usr/local/bin/mysql3307
#修改主从配置文件
主库:3306
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data
server_id=1      
log-bin=mysql-bin   
skip_name_resolve
从库一:3307 
[root@db02 ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3307/data
port=3307
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
pid_file=/data/3307/mysql.pid
server_id=2      
log-bin=mysql-bin   
skip_name_resolve
从库二:3308
[root@db02 ~]# vim /data/3308/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
pid_file=/data/3308/mysql.pid
server_id=3      
log-bin=mysql-bin   
skip_name_resolve
从库三:3309
[root@db02 ~]# vim /data/3309/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/data/3309/data
port=3309
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
pid_file=/data/3309/mysql.pid
server_id=4      
log-bin=mysql-bin   
skip_name_resolve
#进入3306主库
[root@db02 ~]# mysql -uroot -p123
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.50 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
#创建主从复制用户
grant replication slave on *.* to rep@'127.0.0.1' identified by '123';
#//查看表名  如果出现不了表库,可能是改完配置文件没有重启,重启即可
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
#从库操作
change master to master_host='127.0.0.1', master_user='rep', master_password='123', master_log_file='mysql-bin.000001',master_log_pos=120;
#启动从库
start slave;
#查看是否开启
show slave status\G;

Img
从库二和从库三重复从库一操作即可
验证从库是否开启成功

#进入主库创建一个数据库
mysql> create database jiujiu;
Query OK, 1 row affected (0.02 sec)
#切换到从库查看数据库是否同步

Img