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
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
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
初始化数据库,可以看到从服务器已经同步了
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/liyouming欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接。