90%代码由AI生成,31万行复杂业务系统如何重构?美团技术团队分享实战经验
2026/5/8 18:54:29
MySQL主从负载至少需要2台数据库服务器,其中一台为master库,另外一台为slave库,MySQL主从数据同步时一个异步复制的过程,要实现负载首先需要在master 上开启bin-log 日志功能,bin-log日志用于记录在master 库中执行的增、删、修改、更新操作的SQL语句,真个过程需要开启3个现成,分别是master开启IO 线程,slave开启IO线程和SQL 线程,具体主从同步原理如下:
一、准备2台服务器:
master: 172.17.27.127
slave:172.17.191.75
MySQL 8.0 版本
二、配置主库(master):
1.修改 MySQL 配置文件:/etc/my.cnf
[mysqld]# 唯一服务器IDserver-id=1# 开启 binlog(必须!)log-bin=mysql-bin# MySQL 8.0 推荐设置binlog_format=ROW gtid_mode=ON enforce_gtid_consistency=ONsystemctl restart mysql重启mysql 服务时如果报下面的错误,说明没有创建mysql 用户,创建一下mysql用户就可以
[root@master ~]# journalctl -xeDec1314:13:36 nodea100-2 systemd[40128]: Failed at stepUSERspawning /usr/bin/mysqld_pre_systemd: No such process -- Subject: Process /usr/bin/mysqld_pre_systemd could not be executed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- The process /usr/bin/mysqld_pre_systemd could not be executed and failed. -- -- The error number returned by this process is3. Dec1314:13:36 nodea100-2 systemd[1]: mysqld.service: control process exited,code=exitedstatus=217Dec1314:13:36 nodea100-2 systemd[1]: Failed to start MySQL Server. -- Subject: Unit mysqld.service has failed......[root@master ~]# groupadd -g 27 mysql[root@master ~]# useradd -u 27 -g mysql -s /sbin/nologin -d /var/lib/mysql mysql[root@master ~]# chown -R mysql:mysql /var/lib/mysql[root@master ~]# systemctl restart mysqld-- 登录 MySQLmysql-u root-p-- 创建用户(允许从 172.17.191.75 连接)CREATEUSER'repl'@'172.17.191.75'IDENTIFIEDBY'-----';-- 授予复制权限GRANTREPLICATIONSLAVEON*.*TO'repl'@'172.17.191.75';-- 刷新权限FLUSHPRIVILEGES;