mysql主从库与读写分离

mysql主从库与读写分离,第1张

一.mysql主从库与读写分离的实现理论

二.mysql配置

1.准备两台服务器安装mysql(也可以在一台中装两个mysql修改端口号避免冲突)

2.分别连接mysql

3.配置mysql

1.配置主库 monster

打开binary log

2.配置从库

主库授权

账号repl后面的是从库的ip地址 mysql是账号repl的密码

刷新

后面master_log_pos=0 表示从零开始同步 master_log_file 是上面SHOW MASTER STATUS 下面的file文件

在从库中开启主从跟踪

查看从库状态

从库中终止主从同步 stop slave

查看 my.cnf 文件 把 server -id=1 的字段删除 保留server-id=2 修改后保存 重启mysql 重新连接 开启主从同步start slave

查看从库状态 发现没有错误 到此主从同步配置已经完成.

起因:发现 MySQL Slave 数据库 各项状态正常即SQL 线程 IO线程正常,但就是数据不更新,解决办法每次重启服务 恢复正常。 1.首先要确定主服务器与从服务器的数据库是否一样,比如主数据库有,demo,test,lomo,manage。从数据库也必须有这些数据库。如果主从服务器数据库一致则忽律此步。 2. Slave数据库my.cnf 配置文件添加如下配置 slave_net_timeout=30 配置好之后将从服务器的数据重新从主服务器拉取一下。保持数据跟主服务器一致 重启MySQL服务:service mysqld restart

根据要求配置MySQL主从备份、读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记

现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用。

为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致

环境:192.168.0.1 (Master)

192.168.0.2 (Slave)

MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1

server-id = 1 //数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值

log-bin=mysql-bin //启用二进制日志

binlog-do-db=data //需要同步的二进制数据库名

binlog-ignore-db=mysql //不同步的二进制数据库名这个同步后听说很麻烦,我没有同步

log-bin=/var/log/mysql/updatelog //设定生成的log文件名

log-slave-updates //把更新的记录写到二进制文件中

slave-skip-errors //跳过错误,继续执行复制

2、建立复制所要使用的用户

mysql>grant replication slave on *.* to identified by '********'

3、重启mysql

/usr/bin/mysqladmin -uroot shutdown

/usr/bin/mysql_safe &

4、现在备份Master上的数据

锁定后我直接tar.gz data这个库文件

mysql>FLUSH TABLES WITH READ LOCK

cd /var/lib/mysql

tar data.tar.gz data

接着直接执行了远程scp

scp ./data.tar.gz

5、登录Slave数据库服务器,修改my.cnf

server-id = 3 //2已经被用在另一个服务器上了,如果以后要再加Slave号接着往后数就OK了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6095164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存