安装mysql5.7配置Master和Slave

本文详细介绍了如何通过复制MySQL 5.7版本的文件来搭建一个主从数据库系统,并配置了不同的端口和服务身份,实现了数据同步。文章还介绍了如何设置用户权限、日志文件、以及如何启动和管理主从复制。

安装mysql5.7, 新建数据库test。
1. 将C:\Program Files\MySQL下所有的文件拷贝到E:\Program Files\MySQL_Master下,作为主数据库;
2. 将C:\Program Files\MySQL下所有的文件拷贝到E:\Program Files\MySQL_Slave下,作为从数据库;
3. 将C:\ProgramData\MySQL\MySQL Server 5.7下所有的文件夹拷贝到E:\Program Files\MySQL_DATA\Master下作为主数据库的数据存放目录;
4. 将C:\ProgramData\MySQL\MySQL Server 5.7下所有的文件夹拷贝到E:\Program Files\MySQL_DATA\Slave下作为从数据库的数据存放目录;
5. 保存安装版不受影响,这里使用两份复制SQL作为测试使用;
6. 修改E:\Program Files\MySQL_DATA\Master\Data\auto.cnf和E:\Program Files\MySQL_DATA\Slave\Data\auto.cnf文件中的server-uuid, 使两者不同, 否则会报uuId重复;
7. 修改E:\Program Files\MySQL_DATA\Master\my.ini和E:\Program Files\MySQL_DATA\Slave\my.ini中的basedir、datadir、port、secure-file-priv字段;
内容如下:
E:\Program Files\MySQL_DATA\Master\my.ini
port=3307
# The TCP/IP Port the MySQL Server will listen on
port=3307
basedir="E:/Program Files/MySQL_Master/MySQL Server 5.7/"
datadir=E:/Program Files/MySQL_DATA/Master/Data
secure-file-priv="E:/Program Files/MySQL_DATA/Master/Uploads"
E:\Program Files\MySQL_DATA\Slave\my.ini
port=3308
# The TCP/IP Port the MySQL Server will listen on
port=3308
basedir="E:/Program Files/MySQL_Slave/MySQL Server 5.7/"
datadir=E:/Program Files/MySQL_DATA/Slave/Data
secure-file-priv="E:/Program Files/MySQL_DATA/Slave/Uploads"
8. 安装mysqlMaster
在E:\Program Files\MySQL_Master\MySQL Server 5.7\bin下执行
mysqld install mysqlMaster --defaults-file="E:\Program Files\MySQL_DATA\Master\my.ini";
9. 安装mysqlSlave
在E:\Program Files\MySQL_Slave\MySQL Server 5.7\bin下执行
mysqld install mysqlSlave --defaults-file="E:\Program Files\MySQL_DATA\Slave\my.ini";
10. 重启Master和Slave数据库。
11. 为Master新添账户, 允许Slave连接Master
grant replication slave on *.* to toMaster@"192.168.0.63" identified by 'chenxy';
分配权限
GRANT SELECT ON *.* TO 'toMaster'@'%';
12. 为Slace新添账户, 允许连接Slave数据库, 并且只能访问, 不能写
grant replication slave on *.* to slave@"192.168.0.63" identified by 'chenxy';
分配权限
GRANT SELECT, RELOAD, SHOW DATABASES, SHOW VIEW ON *.* TO 'slave'@'%';
13. 在E:\Program Files\MySQL_DATA\Master\my.ini中添加
log-bin=mysql-bin
binlog-do-db=test
14. 在E:\Program Files\MySQL_DATA\Slave\my.ini中添加
log-bin=mysql-bin
replicate-do-db=test
relay_log_recovery=0
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
log_slave_updates = 1
read_only = 1
15. 重启Master和Slave数据库。
16. 查看Master的状态
show master status;
记录File=mysql-bin.000006, Position=1575
17. Slave连接Master
CHANGE MASTER TO master_host = '192.168.0.63',
master_port = 3307,
master_user = 'toMaster',
master_password = 'chenxy',
master_log_file = 'mysql-bin.000006',
master_log_pos = 1575;
查看Slave状态
show slave status;
slave_IO_running和slave_SQL_Running为yes表示Master-Slave配置成功
18. 常用命令
reset slave; #重置slave
stop slave; #停止slave
start slave; #开始slave
show slave status; #slave状态
show master status; #master状态



























### 使用 Docker Compose 部署 MySQL 5.7 主从复制 #### 准备工作环境 为了确保主从复制正常运行,需先准备必要的文件夹结构: ```bash mkdir -p /data/mysql/master/conf mkdir -p /data/mysql/master/data mkdir -p /data/mysql/slave/conf mkdir -p /data/mysql/slave/data touch /data/mysql/master/conf/my.cnf touch /data/mysql/slave/conf/my.cnf ``` 这些命令用于创建MySQL MasterSlave实例所需的工作目录以及初始化配置文件[^1]。 #### 编写 `docker-compose.yml` 文件 进入 `/data/mysql/` 目录下编辑 `docker-compose.yml` 文件来定义两个容器的服务——Master Slave: ```yaml version: '3' services: master: image: mysql:5.7 container_name: mysql_master environment: MYSQL_ROOT_PASSWORD: root_password volumes: - ./master/conf:/etc/mysql/conf.d - ./master/data:/var/lib/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --server-id=1 --log-bin=mysql-master-bin ports: - "3306:3306" slave: image: mysql:5.7 container_name: mysql_slave depends_on: - master environment: MYSQL_ROOT_PASSWORD: root_password volumes: - ./slave/conf:/etc/mysql/conf.d - ./slave/data:/var/lib/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --server-id=2 --log-bin=mysql-slave-bin --relay-log=mysql-relay-bin --read-only=1 ``` 此配置指定了两台服务器的不同参数,包括字符集、校验规则服务ID等重要属性[^3]。 #### 启动服务并验证连接 启动Docker Compose项目中的所有服务: ```bash cd /data/mysql/ docker-compose up -d ``` 等待一段时间让数据库完全启动之后,在Master节点上执行如下SQL语句以授权给Slave访问权限: ```sql GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 接着登录到Slave机器内完成最后一步操作: ```sql CHANGE MASTER TO MASTER_HOST='mysql_master', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-master-bin.000001', MASTER_LOG_POS=<position>; START SLAVE; SHOW SLAVE STATUS\G; ``` 上述过程完成了基本的主从设置流程。注意替换实际的日志位置(`<position>`)为之前查询得到的具体数值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值