MySQL主从配置

MySQL 主从配置方案

1. 安装数据库(同版本,采用压缩包的方式安装)

1.1 创建配置文件my.ini,并将my.ini存放在MySQL安装目录下

[mysqld]
# 设置MySQL安装路径
basedir=D:\iscw\mysql
# 设置MySQL数据保存目录
datadir=D:\iscw\mysql\data

1.2 使用mysqld手动初始化数据目录

  • 初始化选项说明

    • --initialize使用该选项初始化将生成随机密码,建议结合--console选项使用
    • --initialize-insecure使用该选项初始化将不会生成任何密码
    • --defaults-file指定mysql数据目录初始化时读取的配置文件,该选项必须在mysqld命令之后的第一位
  • 初始化数据目录

    注意

    --initialize选项初始化生成的随机密码在最后一行

    mysqld --initialize --console
    

1.3 启动MySQL服务器

net start mysql

1.4 连接MySQL服务器

  • 使用--initialize选项初始化数据目录,请使用随机密码登录服务器

    mysql -u root -p
    

    使用--initialize-insecure选项初始化数据目录,请使用--skip-password选项连接服务器

    mysql -u root --skip-password
    

1.5 连接后,修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'

注意

通常情况下使用127.0.0.1连接到服务器会被解析为localhost账户。可以通过以下方式确保连接到MySQL服务器

CREATE USER 'username'@'hostname' IDENTIFIED BY 'new_password'

2. 主从配置(通过修改ini文件实现)

1. master服务器配置

1.1 用户添加及授权

// 在master服务器上授权一个账号,拥有slave权限
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'154.132.32.38' IDENTIFIED BY 'iscw';

说明:154.132.32.38 是从库的IP,iscw 是账号repl的密码,配制时按照响应IP去修改

1.2 修改my.ini配置文件

# 主从的server-id必须不一样,服务器多的话尽量不选择1,2,3
server-id=1
# 主节点日志名称
log-bin=master-bin
binlog-format=ROW
# 以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整
expire_logs_days = 7 
# binlog过期清理时间
max_binlog_size = 1G 
# binlog每个日志文件大小
 
max_connections = 1000
character-set-server = utf8mb4 
# 配置字符集
collation-server = utf8mb4_unicode_ci 
# 配置字符集
# 配置不同步的库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

1.3 重启master的MySQL服务

net stop mysql
net start mysql

2. 从库配置

2.1 修改my.ini配置文件

[mysqld]
max_connections = 1000
log_bin = slave-bin
server_id = 2
relay_log = slave-relay-bin
log_slave_updates = 1
read_only = 1
#以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整
expire_logs_days = 7 
# binlog过期清理时间
max_binlog_size = 100m 
# binlog每个日志文件大小
 
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys

2.2 重启MySQL服务

3. 开启复制

1. 查看主库binlog信息

1.1 登录主库执行

show master status;

执行完成后,可以获取当前主库binlog使用的文件及pos点

binlog文件:file(master-bin.00000x)

pos点:position

2. 在从库上设置复制信息

2.1 根据上一步获取到的信息(position,file)配置从库的复制信息,在从库执行如下命令

# 注意:每次重启数据库以后需要重新运行当前命令开启同步
CHANGE MASTER TO MASTER_HOST='154.132.37.238',MASTER_USER='repl',MASTER_PASSWORD='iscw',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=154;

参数解释:

  1. master_host:主节点IP
  2. master_user:master授权的用户
  3. master_password:master授权用户密码
  4. master_log_file:master binlog日志文件名称
  5. master_log_pos:master的日志文件位置

2.2 在从库开启复制

从库信息配置完成后执行命令可开启复制

start slave;

2.3 查看复制状态

# 启动后如果不报错即可执行查看复制状态命令
show slave status\G;  	# \G 格式化显示
# 主要看两个参数状态,如果都是yes ,表示通信整张
Slave_IO_Running=Yes
Slave_SQL_Running=Yes

注意

  1. Slave_IO_Running=NO

    1. 检查两台主机是否能ping通

      ping不通可以关闭防火墙

  2. Slave_SQL_Running=NO

    1. 重启同步

      # 1. 从库关闭同步
      stop slave;
      # 2. 主库刷新log日志文件
      flush logs;
      # 3. 查看主库新的日志文件,一般是最后的数字加1
      show master status;
      # 4. 从库根据新的日志文件在从库重新设置主节点日志信息
      CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=154;
      # 5. 从库开启同步
      start slave;
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值