Linux宝塔Mysql两台服务器主从配置,服务器存在多个库

实现目标:两台服务器(一台为从服务器,一台为主服务器),当主服务器的数据修改,从服务器复制主服务器的操作,实现自动修改数据;

一、主数据库操作

1、先登录主数据库

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

2、创建一个账号(创建一个专门提供从机远程访问使用的用户),供从库用该账号登录主库('%'不用改,改了从库会登录不上)

#创建一个账号,供从库用该账号登录主库('%'不用改,改了从库会登录不上)
grant replication slave on *.* to 'repl'@'%' identified by '123456';
#刷新权限
 flush privileges;

 3、查看到服务器所有的数据库账号密码,包括你新增的,正常操作的话,不用执行这个命令

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

4、主数据库配置,然后重启数据库服务

#主服务器唯一ID(必须唯一)
server-id=101
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=mixed

# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates 
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是1 .. 65535 
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535 
auto-increment-offset=1

 

 5、查看主库的状态,这里是为了看主库的日志文件及从文件哪行开始读

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

 记录二进制文件名File和位置Position,后面配从库要用

6、主数据库查看日志是否开启

show variables like '%log_bin%';

 7、主数据库查看skip_networking是否是关闭状态;

show variables like '%skip_networking%';

 二、配置从库设置

1、配置数据库my.conf文件,配置完成重启数据库服务

#开启日志
log-bin=mysql-bin
#配置格式
binlog_format=mixed#配置服务唯一ID
server-id = 2
#设置有效期天数
expire_logs_days = 10
#只复制主数据库的其中一个数据库
replicate_do_db = www

2、先登录主数据库

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

3、执行授权之前首先停止slave

stop slave;

4、然后清除所有slave

reset slave all;

5、授权 slave在从服务器配置链接到主服务器的相关信息(在从服务器的mysql执行)

CHANGE MASTER TO MASTER_HOST='主机的IP地址', 
MASTER_USER='用户名',
MASTER_PASSWORD='密码', 
MASTER_LOG_FILE='binlog日志的名字,mysql-bin.具体数字',
MASTER_LOG_POS=接入点,具体的值;

 6、启动从服务器复制功能

start slave;

7、查看从服务器状态

show slave status\G;

 8、配置成功,如果数据库显示只读不能写入

#查看只读状态
SHOW VARIABLES LIKE 'read_only';
#设置关掉全局只读
SET GLOBAL read_only=OFF;

 

posted @ 2024-09-04 18:06  楓羽靈~  阅读(433)  评论(0)    收藏  举报