匿名
未登录
登录
Linux78|wiki
搜索
查看“MySQL已有数据改为主从结构”的源代码
来自Linux78|wiki
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
MySQL已有数据改为主从结构
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
wiki:用户|用户
您可以查看与复制此页面的源代码。
问题:公司业务数据一直使用单台MySQL服务器,现在需要扩展为主从结构,对于已经存在的数据需要不受影响,应该如何实现? 答案:如果之前的服务器有记录二进制日志,那么直接按正常操作配置主从即可,如果没有记录二进制日志,则需要先把Master服务器数据导出到Slave服务器上,然后进行主从复制 配置步骤如下: 1、首先要导出主库的数据,分为两种情况,如果是innodb引擎的可以不锁表,反之要上锁。下面语句适用于innodb引擎,不用锁表。 mysqldump -u root --master-data=2 --single-transaction -A -R -E --triggers >/mysqldata.sql # master-data=2 是为了记录binlog日志的位置,查看备份文件可以找到需要的postion # single-transaction innodb引擎加该选项不用锁表 如果非innodb引擎,先进行锁表再执行导出操作,防止导出数据中途插入了新内容(该终端不要退出,否则锁表会中止) flush tables with read lock; #该语句只在当前会话生效,这个时候需要另启终端进行导出 2、主服务器启用二进制日志,然后重启服务 vim /etc/my.cnf log_bin = master-bin binlog_format = row server_id = 1 3、在Slave服务器上导入Master的备份数据 mysql -u root < /mysqldata.sql 4、验证数据是否导入成功 show databases; 5、在Master服务器上做授权操作 grant replication slave on *.* to 'repuser'@'192.168.1.110' identified by '123456' flush privileges 6、在Slave上执行同步语句,由于通常备份时会指定--master-data=2,所以master_log_file和master_log_pos可以在备份文件中看到: 也可以在Master服务器上执行show master status\G来查看 change master to master_host='192.168.1.100'. master_user='repuser', master_password='123456', master_log_file='mysql-bin.000004', master_log_pos=1484; 7、从服务器上执行SQL语句,如果Slave_IO_Running和Slave_SQL_Running两项的工作状态为yes就代表成功了 mysql > start slave mysql > show slave status\G 8、Master服务器解锁 unlock tables; 9、插入一些数据测试同步情况
返回至
MySQL已有数据改为主从结构
。
导航
导航
首页
最近更改
随机页面
栏目
Nginx
Kubernetes
Spring Cloud
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志