ThinkPHP5数据库主从配置一主多从

ThinkPHP 5+数据库主从配置

一、主多从配置
1.配置文件(可以配置在.env)
1)启用分布式数据库后,hostname参数是关键,hostname的个数决定了分布式数据库的数量,默认情况下第一个地址就是主服务器。
2)如果主从服务器的下列连接参数一致,只需要设置一个即可,对于不同的参数,可以分别设置。切记要么相同,要么每个都设置。
//数据库连接配置
‘DB_DEPLOY_TYPE’ => 1, //是否启用分布式
‘DB_RW_SEPARATE’ => true, //是否启用智能读写分离
‘DB_TYPE’ => ‘mysql’, // 数据库类型
‘DB_HOST’ => ‘192.168.20.128,192.168.20.129’, // 服务器地址,默认第一个配置是主库。后面为从库,多个从库则随机访问。
‘DB_NAME’ => ‘master,slave’, // 数据库名
‘DB_USER’ => ‘master,slave’, // 用户名
‘DB_PWD’ => ‘master,slave’, // 密码
‘DB_PORT’ => ‘3306’, // 端口
‘DB_PREFIX’ => ‘abc_’,//表名前缀

2.配置数据库
半自动复制插件脚本安装
登录MySQL执行脚本:
主库:
install plugin rpl_semi_sync_master soname ‘semisync_master.dll’;//windows系统
install plugin rpl_semi_sync_master soname ‘semisync_master.so’;//linux系统

从库:
INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.dll’;//windows系统
INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so’;//linux系统

主从数据库的my.cnf文件配置:
主库:
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #此单位是毫秒
log-bin=mysql-bin #打开日志(主机需要打开)
server-id=1 #服务器id
log-bin-index=mysql-bin.index
sync_binlog=1
#给从机同步的库,可以多个
binlog-do-db=tp #从库的数据库名称
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
expire_logs_days=1

从库:
rpl_semi_sync_slave_enabled=1
server-id=2 #服务器id
#要从主机同步的库
replicate-do-db=tp #主库的数据库名

配置后之后重启服务
SHOW MASTER STATUS; #查看主服务状态

配置从数据库
CHANGE MASTER TO MASTER_HOST=‘主数据库IP’,
MASTER_USER=‘账号’,
MASTER_PASSWORD=‘用户密码’,
MASTER_LOG_FILE=‘mysql-bin.000008’,//日志
MASTER_LOG_POS=107;//端口
start slave; #开启SLAVE同步
show slave status \G; #查看下slave状态

Slave_IO_Running: NO
原因:1.MASTER_LOG_POS端口要对应。2.server_id要区分。3.日志名称要一致

3.提醒注意
(1)主库从库数据库名称一致不容易出错。
(2)配置完主从不能退出主库的mysql,不然端口会更换。需要配置主库。
开启master 和 slave 上的gtid功能 、开启read_only 功能。这都通过my.cnf文件配置下就行啦。
命令:set global read_only=1; 成功之后MASTER_LOG_POS会自动更新。
(3)在从库连接一下远程的数据库。看能不能连。如果能连。一般来说都是没问题的
命令:mysql -h主服务器ip -u刚刚主服务器设置的账号 -p密码
(4)端口名称每次重启服务器都会更新。有了第二步操作则不需要这一步操作。
①需要stop slave; #停止SLAVE同步
②再执行一次从数据库配置
CHANGE MASTER TO MASTER_HOST=‘主数据库IP’,
MASTER_USER=‘账号’,
MASTER_PASSWORD=‘用户密码’,
MASTER_LOG_FILE=‘mysql-bin.000008’,//日志
MASTER_LOG_POS=107;//端口
③start slave; #开启SLAVE同步
④show slave status \G; #查看下slave状态

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值