Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库

Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库

一、主库操作

#登录数据库,用root登录方便,用其他账号会提示权限不足,需要登录root给予权限
mysql -u root -p
密码

#创建一个账号,供从库用该账号登录主库('%'不用改,改了从库会登录不上)
grant replication slave on *.* to 'database_slave'@'%' identified by 'databasepwd';

#这个命令可以查看到服务器所有的数据库账号密码,包括你新增的,正常操作的话,不用执行这个命令
select user,host from mysql.user;

#查看主库的状态,这里是为了看主库的日志文件及从文件哪行开始读
#图中的file、Position复制出来,配置从库会用到
show master status;

Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库_第1张图片

#如上图就对了,如果出现下图,说明你主库没有开log-bin日志

在这里插入图片描述

#查看日志开启状态
show variables like '%log_bin%';

Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库_第2张图片

#如果你也是宝塔,找到软件商店->MySQL->设置->配置修改,打开注释、或者添加 
log-bin=mysql-bin  #启用二进制日志 
server-id=1 #这个server-id 也可能需要修改,要保证主库、从库server-id不同

Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库_第3张图片

#如果是宝塔,每次改完配置需要重启MySQL,重载配置文件没有用,重启后还执行show master status,应该就对了

二、从库操作

#登录数据库,用root登录方便,用其他账号会提示权限不足,需要登录root给予权限
mysql -u root -p
密码

#停止slave服务
stop slave;

#Slave设置参数,主库host,主库上面新增的账号、密码,主库log-bin文件名,从日志哪行开始复制
Change master to master_host='110.242.68.4',master_user='database_slave',master_password='databasepwd',master_log_file='mysql-bin.000002',master_log_pos=21568709;

#启动slave服务
start slave;

#Slave服务状态查看
#图中 Slave_IO_Running: Yes,  Slave_SQL_Running: Yes,都为Yes才是正常了
show slave status\G

Linux宝塔Mysql读写分离配置,两台服务器,服务器存在多个库_第4张图片

#一些报错示例
#登录不上主库
error connecting to master '[email protected]:3306' - retry-time: 60  retries: 1
#可能存在的问题,主库防火墙没关,关闭它
firewall-cmd --state
systemctl stop firewalld.service
#也可能是你在主库创建用户的时候,grant replication slave on *.* to 'database_slave'@'%' identified by 'databasepwd';这里不是'%',也会登录不上,那就去主库从新添加用户

#如果你是主库上存在多个库,你发现Last_SQL_Error:中出现了你不需要复制的库,去修改从库配置文件,在[mysqld]下面添加
#主从复制指定复制的主库库
replicate_do_db = supplier_cbecbas
#跳过所有错误 根据自身情况判断要不要开启
#slave-skip-errors=all
#跳过指定error no类型的错误 根据自身情况判断要不要开启
#slave-skip-errors=1062,1053,1146

#改完配置记得重启MySQL,然后stop slave; start slave; show slave status\G

你可能感兴趣的:(服务器,linux,mysql,分布式)