ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
主从复制 https://dev.mysql.com/doc/refman/5.7/en/replication.html 复制解决的基本问题是让一台服务器的数据与其他服务器保持同步;一台主库的数据可以同步到多台备库上,可以同步全部数据,可以同步某个库或表。 备库本身也可以被配置成另外一台服务器的主库。 原理:主库写二进制日志文件(Binary Log),备库读主库的二进制日志文件。 工作过程: 1 主库把数据更改记录到二进制日志。 2 备库将主库上的日志复制到自己的中继日志(Relay Log)。 3 备库读取中继日志中的事件,将其重放(redo)到备库数据之上。 配置步骤: https://dev.mysql.com/doc/refman/5.7/en/replication-howto.html 1 创建复制账号(主库) GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'192.168.235.%' IDENTIFIED BY '123456wyy'; 2 配置主库和备库 主库: my.cnf ,重启 log_bin = mysql-bin #二进制日志 server_id = 161 # 集群中server_id 不能重复 从库: my.cnf server_id = 162 (将主库或者备库的UUID进行修改/data/auto.cnf) 3 通知备库连接到主库并从主库复制数据。 #设置备库参数 CHANGE MASTER TO MASTER_HOST='192.168.235.102', #设置主库的host MASTER_USER = 'repl', MASTER_PASSWORD = '123456wyy', MASTER_LOG_FILE = 'mysql-bin.000006', # 主库的 log文件名 通过在主库中执行 show master status 获取 文件名 MASTER_LOG_POS = 474; # log 位置(Position) 通过在主库中执行 show master status 获取 文件名 #启动 START SLAVE; 相关命令: show master status\G 显示主库状态 *************************** 1. row *************************** File: mysql-bin.000004 #主库使用的binlog 文件 Position: 1061 #主库binlog日志位置 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: show slave status\G 显示备库状态 Slave_IO_State: Waiting for master to send event Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 1061 Last_Errno: Last_Error: start slave; 开启复制 stop slave; 停止复制