一、环境准备
准备两个Mysql数据库(虚拟机或者一台机器安装两个Mysql)
本文使用的两台Mysql数据库
一台是阿里云的Ubuntu18.04
Mysql8.0 Master 39.103.193.55:3777
一台是Hyper-V 虚拟机CentOS8.0
Mysql8.0 Slave 39.103.193.55:3306(通过Frp 映射到公网3306端口)
注:两台Mysql 地址要相互可以ping通
CentOS8.0 安装Mysql方法 请查看历史消息
Ubuntu18.04 安装Mysql方法 明日更新(附带Frp)
二、设置Master Mysql库(主库)
连接到Master Mysql 所在的服务器
1、Ubuntu18.04 切换路径到 /etc/mysql/mysql.conf.d
cd etc/mysql/mysql.conf.d# 编辑配置文件vim mysqld.cnf

server-id = 1 # 节点ID,确保唯一# log configlog-bin = mysql-bin #开启mysql的binlog日志功能sync_binlog = 1 #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全binlog_format = mixed #binlog日志格式,mysql默认采用statement,建议使用mixedexpire_logs_days = 7 #binlog过期清理时间max_binlog_size = 100m #binlog每个日志文件大小binlog_cache_size = 4m #binlog缓存大小max_binlog_cache_size= 512m #最大binlog缓存大binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行auto-increment-offset = 1 #自增值的偏移量auto-increment-increment = 1#自增值的自增量slave-skip-errors = all #跳过从库错误

2、重启数据库
# Ubuntu 重启Mysqlservice mysql restart# Ubuntu 启动Mysqlservice mysql start# Ubuntu 停止Mysqlservice mysql stop

三、设置Slave Mysql 库(从库)
连接到Slave Mysql 所在服务器
1、CentOS 8.0 切换路径到 /etc/my.cnf.d
cd etc/my.cnf.d# 编辑配置文件vim mysql-server.cnf

server-id = 2 # 节点ID,确保唯一log-bin=mysql-bin #开启mysql的binlog日志功能relay-log = mysql-relay-binreplicate-wild-ignore-table=mysql.% #忽略不需要同步的mysql库replicate-wild-ignore-table=test.% #忽略不需要同步的test库replicate-wild-ignore-table=information_schema.% #忽略不需要同步的information_schema库

2、重启数据库
# 重启CentOS8.0 Mysqlservice mysqld restart# 启动CentOS8.0 Mysqlservice mysqld start# 停止CentOS8.0 Mysqlservice mysqld stop

四、连接Master Mysql (主库)
1、连接数据库
mysql -u root -p
输入密码(密码不显示)

2、创建用于复制数据库的用户并授权
# % 表示可以在任意ip下连接 可以设置在特定ip下连接 (从库所在服务器ip)# 可以将% 替换为ip地址CREATE USER `用户名`@`%` IDENTIFIED BY '密码';# 授权 % 和创建用户的含义相同GRANT Replication Slave ON *.* TO `用户名`@`%`;# 刷新FLUSH PRIVILEGES;

3、查看主库状态

五、连接Slave Mysql (从库)
1、连接数据库
mysql -u root -p
密码不显示

2、配置Slave Mysql库(从库)
CHANGE MASTER TO MASTER_HOST = '39.103.193.55',MASTER_USER = 'SlaveUser',MASTER_PASSWORD = '密码',MASTER_PORT = 3777,MASTER_LOG_FILE = 'mysql-bin.000002',MASTER_LOG_POS = 1369,MASTER_RETRY_COUNT = 600,MASTER_HEARTBEAT_PERIOD = 10000;# MASTER_PORT 端口# MASTER_LOG_FILE='mysql-bin.000002',#与主库File 保持一致# MASTER_LOG_POS=1369 , #与主库Position 保持一致# Master_Retry_Count限制重试次数,默认3600×24=86400。# slave_net_timeout相当于主从心跳

3、启动Slave 库
# 启动start slave;# 停止stop slave;# 查看从库状态show slave status \G;#取消从库命令reset slave all
用颜色标注的来个都是YES 表示设置成功

注:不成功时可以在从库测试连接主库Mysql
命令
mysql -u SlaveUser -P 3777 -h 39.103.193.55 -p输入密码
文章转载自张先生的资料库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




