MySQL主从数据库搭建的实现
目录
- 1. 数据库配置
- 2. 创建复制用户
- 创建并分配用户权限
- 修改用户认证方式
- 3. 主库状态查询
- 4.ssl配置
- 5. 导入数据库,开启复制线程
- 6. 从库配置
学习了如何搭建mysql主从数据库,为加深印象,写了这篇博客作为总结。本篇文章使用的是MySQL8.0,主库使用Windows操作系统,从库使用linux。
1. 数据库配置
在主库对MySQL进行配置。如果是Linux,需配置my.cnf或mys编程客栈ql.cnf,如果是Windows,需在C:\Proghttp://www.devze.comramData\MySQL\MySQL Server 8.0配置my.ini。
在配置文件的[mysqld]下添加如下配置:server-id = 1 #如已经有该配置,则不用再次添加。和从库的serjavascriptver-id不同即可。 log-bin = mysql-bin binlog_format = ROW gtid_mode = ON enforce_gtid_jmhBltBconsistency = ON
从库同样在配置文件里添加以下内容:
server-id = 2 relay-log = mysql-relay-bin read_only = 1 gtid_mode = ON enforce_gtid_consistency = ON #跳过 mysql 系统库的复制 replicate-ignore-db = mysql replicate-ignore-db = sys replicate-ignore-db = information_schema replicate-ignore-db = performance_schema
配置完成后重启MySQL服务
2. 创建复制用户
创建并分配用户权限
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'StrongPassword!'; GRANT REPLICATION SLAVE, REPLICATION CLIENT, REPLICATION_APPLIER ON *.* TO 'repl_user'@'%'; FLUSH PRIVILEGES;
修改用户认证方式
ALTER USER 'repl_user'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPassword!'; FLUSH PRIVILEGES;
注:认证方式修改只需在主库进行(从库连接主库时使用)。
3. 主库状态查询
主库登录MySQL,执行SHOW MASTER STATUS;
查询并记录输出中的 File 和 Position,稍后从库需要用到。
4.ssl配置
在C:\ProgramData\MySQL\MySQL Server 8.0\Data查询是否有ca.pem、ca-key.pem、server-key.pem和server-cert-pem。如果没有,需要使用openssl进行生成。
在主库配置文件的[mysqld]下添加以下内容:ssl-ca = ca.pem ssl-cert = server-chttp://www.devze.comert.pem ssl-key = server-key.pem
5. 导入数据库,开启复制线程
在主库登录MySQL,执行mysqldump -u root -p --single-transaction --master-data=2 --routines --triggers --all-databases > full_backup.sql
导出数据库文件。发送到Linux虚拟机后,执行mysql -u root -p < full_backup.sql
进行导入。
6. 从库配置
在linux登录MySQL,执行以下命令:
CHANGE REPLICATION SOURCE TO SOURCE_HOST = '192.168.8.100', #填写主库的实际ip,建议使用固定ip SOURCE_USER = 'repl_user', SOURCE_PASSWORD = 'StrongPassword!', SOURCE_LOG_FILE = 'mysql-bin.000002', #第三步查询到的file SOURCE_LOG_POS = 1330, #第三步查询到的position SOURCE_SSL = 1; #启用ssl
导入完成,执行START REPLICA;
开启复制线程即可。
SHOW REPLICA STATUS\G;
查询从库配置的具体状态。正常情况下应该没有error信息,Replica_IO_Running和Replica_SQL_Running都是Yes。
到此这篇关于MySQL主从数据库搭建的实现的文章就介绍到这了,更多相关MySQL主从数据库搭建内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论