Fork me on GitHub

Mysql 主从配置

主:192.168.0.42

1、myini配置

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
server_id=1
log_bin=mysqlmaster-bin
log_bin-index=mysqlmaster-bin.index
# 需要备份数据,多个写多行,不写全部都备份
binlog-do-db =userdb
#不需要备份的数据库,多个写多行
#binlog-ignore-db = mysql 
# 设置mysql的安装目录
basedir=E:/NetCore进阶高级/window端常用工具/mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:/NetCore进阶高级/window端常用工具/mysql-8.0.11-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
My.ini

2、设置同步账户及权限分配

1)GRANT FILE ON *.* TO 'testuser'@'192.168.0.73' IDENTIFIED BY '123456';
2)GRANT REPLICATION SLAVE ON *.* TO 'testuser'@'192.168.0.73' IDENTIFIED BY'123456';

3)查看下主服务器,原理其实就是同步数据库日志文件,红框部分在设置从服务器需要使用

 


从:192.168.0.73

1、myini配置

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
server_id=2 
log_bin=mysql-bin
log_bin-index=mysql-bin.index
# 需要备份数据,多个写多行,不写全部都备份
#binlog-do-db =z.userdb
#不需要备份的数据库,多个写多行
#binlog-ignore-db = mysql 
#需要同步的表
replicate-do-db=userdb
#不需要同步的表
replicate-ignore-db=mysql
# 设置mysql的安装目录
basedir=E:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-5.7.22-winx64\mysql-5.7.22-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
my.ini

2、设置同步连接账户和同步文件位置等信息

1)先停止下slave :mysql>stop slave;

2 )执行:mysql>change master to master_host='192.168.0.42', master_user='test', master_password='123456',master_log_file='mysqlmaster-bin.000004',master_log_pos=154;

3) 启动slave :mysql>start slave;

3、检测下状态看有没有错误:mysql>show slave status; 

可能出现的错误:1045 Error  配置同步账户grant下权限,先查看下

然后根据需要配置

完成了这些 就可在代码中做CQRS了

在dotnetcore项目中使用

dotnet ef migrations add initdatabase

dotnet ef database update

初始化数据库,可以看到从服务器已经同步了

 

posted @ 2018-05-03 12:51  龙码精神  阅读(256)  评论(0编辑  收藏  举报