MySQL 主从配置方案
1. 安装数据库(同版本,采用压缩包的方式安装)
1 创建配置文件my.ini
,并将my.ini
存放在MySQL安装目录下
[mysqld]# 设置MySQL安装路径basedir=D:\iscw\mysql# 设置MySQL数据保存目录datadir=D:\iscw\mysql\data
2 使用mysqld手动初始化数据目录
-
初始化选项说明
--initialize
使用该选项初始化将生成随机密码,建议结合--console
选项使用--initialize-insecure
使用该选项初始化将不会生成任何密码--defaults-file
指定mysql数据目录初始化时读取的配置文件,该选项必须在mysqld
命令之后的第一位
-
初始化数据目录
注意
--initialize
选项初始化生成的随机密码在最后一行mysqld --initialize --console
3 启动MySQL服务器
net start mysql
4 连接MySQL服务器
-
使用
--initialize
选项初始化数据目录,请使用随机密码登录服务器mysql -u root -p
使用
--initialize-insecure
选项初始化数据目录,请使用--skip-password
选项连接服务器mysql -u root --skip-password
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 用户添加及授权
// 在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去修改
2 修改my.ini配置文件
# 主从的server-id必须不一样,服务器多的话尽量不选择1,2,3server-id=1# 主节点日志名称log-bin=master-binbinlog-format=ROW# 以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整expire_logs_days = 7 # binlog过期清理时间max_binlog_size = 1G # binlog每个日志文件大小 max_connections = 1000character-set-server = utf8mb4 # 配置字符集collation-server = utf8mb4_unicode_ci # 配置字符集# 配置不同步的库binlog-ignore-db = mysqlbinlog-ignore-db = sysbinlog-ignore-db = information_schemabinlog-ignore-db = performance_schema
3 重启master的MySQL服务
net stop mysqlnet start mysql
2. 从库配置
1 修改my.ini配置文件
[mysqld]max_connections = 1000log_bin = slave-binserver_id = 2relay_log = slave-relay-binlog_slave_updates = 1read_only = 1#以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整expire_logs_days = 7 # binlog过期清理时间max_binlog_size = 100m # binlog每个日志文件大小 replicate_ignore_db=information_schemareplicate_ignore_db=performance_schemareplicate_ignore_db=mysqlreplicate_ignore_db=sys
2 重启MySQL服务
3. 开启复制
1. 查看主库binlog信息
1 登录主库执行
show master status;
执行完成后,可以获取当前主库binlog使用的文件及pos点
binlog文件:file(master-bin.00000x)
pos点:position
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;
参数解释:
- master_host:主节点IP
- master_user:master授权的用户
- master_password:master授权用户密码
- master_log_file:master binlog日志文件名称
- master_log_pos:master的日志文件位置
2 在从库开启复制
从库信息配置完成后执行命令可开启复制
start slave;
3 查看复制状态
# 启动后如果不报错即可执行查看复制状态命令show slave status\G; # \G 格式化显示# 主要看两个参数状态,如果都是yes ,表示通信整张Slave_IO_Running=YesSlave_SQL_Running=Yes
注意
-
Slave_IO_Running=NO
-
检查两台主机是否能ping通
ping不通可以关闭防火墙
-
-
Slave_SQL_Running=NO
-
重启同步
# 1. 从库关闭同步stop slave;# 2. 主库刷新log日志文件flush logs;# 3. 查看主库新的日志文件,一般是最后的数字加1show master status;# 4. 从库根据新的日志文件在从库重新设置主节点日志信息CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=154;# 5. 从库开启同步start slave;
-
来源地址:https://blog.csdn.net/weixin_43760048/article/details/128558716