mysql 多主多从_mysql 8 多主多从同步方案--单机多实例

1.mysql多实例

max_connections=200

character-set-server=utf8

#创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

#设置协议认证方式(重点啊)

default_authentication_plugin=mysql_native_password

[mysql]

#设置mysql客户端默认字符集

default-character-set=utf8

mysqld --initialize --user=mysql --console

mysqld --initialize --console

密码

11

(=qy8N4hlwJ!

10

ffr:FZe(x7Hv

mysqld –install mysql803310

mysqld –install mysql803311

mysqld --install mysql803311 --defaults-file="D:\apps\mysql8-3311\my.ini"

mysqld --install mysql803310 --defaults-file="D:\apps\mysql8-3310\my.ini"

mysqld remove mysql803311

net

更改密码

mysql -uroot -p

select host,user,authentication_string from mysql.user;

ALTER USER root@localhost IDENTIFIED BY 'monetware2018';

改远程

改加密方式

在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'monetware2018';

FLUSH PRIVILEGES;

改远程

update mysql.user set host = '%' where user = 'root';

授予权限

CREATE USER 'root'@'%' IDENTIFIED BY 'root';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

2.多实例主从配置

2.1主库设置

#%可更改为具体的从库ip,现在不限制

create user 'reple'@'%' identified by 'monetware2018reple';

注意设置编码

ALTER USER 'reple'@'%' IDENTIFIED WITH mysql_native_password BY 'monetware2018reple';

FLUSH PRIVILEGES;

grant replication slave on *.* to 'reple'@'%';

show master status;

#最后一个命令获取到当前归档日志的名字和位置,后面从服务器设置主从复制的时候需要从这个位置开始。

MONET230-bin.000004 2253

2.2从库设置

change master to

master_host='192.168.0.230',

master_port=3310,

master_user='reple',

master_password='monetware2018reple',

master_log_file='MONET230-bin.000005',

master_log_pos= 1199;

start slave;

show slave slave\G;

#这个命令将当前数据库设置为 10.110.2.71 数据库的从库,并且从归档日志 binlog.000001 的位置 888 开始进行复制。

Slave_IO_State 的值为 Waiting for master to send event ,表示已经准备好接受主库发送过来的归档日志进行处理了。

2.3同步指定的数据库

上面的设置中,我们是将主库中的所有数据库都同步到从库中来了。实际上,我们还可以通过命令的方式同步指定的数据库或者数据库的数据表。在从库中执行下面的命令将会指定只同步数据库 test1

stop slave;

change replication filter replicate_do_db=(test1);

start slave;

show slave status\G;

这样,只有主库中 test1 数据库中的变化会同步到从库中来,其余的数据库的变化则不会同步。

这个命令产生的效果没有保存下来,如果数据库重启了,那么就会失效。如果要生效就需要将配置写在 my.cnf 文件中。在从库中,将 my.cnf 文件内容更改为如下即可。加入

replicate_do_db=test1

然后重新启动数据库即可

2.4非空主库主从设置

很多时候,设置主从复制的时候,主库已经运行了一段时间,有了一些业务数据,那么这个时候我们首先将主库设置为只读状态,不允许新数据写入,然后查看当前的归档日志状态,记录下来后将数据库备份出来,恢复从库的可写状态,最后把备份出来的数据库恢复到从库中,再设置为从刚才查询出来的归档日志和归档日志的位置开始进行同步即可。

2.5主从的一些配置含义

log-bin=mysql-bin #从库会基于此log-bin来做复制

binlog-do-db=mytest #用于读写分离的具体数据库,这里我创建了mytest作测试

binlog_ignore_db=mysql #不用于读写分离的具体数据库

binlog_ignore_db=information_schema #和binlog-do-db一样,可以设置多个

#选择row模式

binlog-format=ROW

server-id=1

log-bin=mysql-bin #从库会基于此log-bin来做复制

replicate-do-db=mytest #用于读写分离的具体数据库,这里我创建了mytest作测试

#选择row模式

binlog-format=ROW

server-id=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值