二.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
查看从库状态 发现没有错误 到此主从同步配置已经完成.
读写分离的意思是,写入的时候向 a 服务器写入,而读出的时候从 b c d 甚至更多的服务器读出;这样的架构适合于读多写少的应用,最典型的就是火车购票系统,一般我们买票的时候要先查询好多次,包括车次啊,时间啊,这都是读 *** 作,而最后可能只买一张车票,这是写 *** 作;做了读写分离之后,可以将资源分配到最合理的地方,不会使某些资源闲置,而另一些资源不够用;但是读写分离必然引发主从复制,试想一共有 10 张票,买了 1 张票,读的时候如果还是读到 10 张余票就不对了,因此需要主从复制,再读的时候,就只能读到 9 张余票了;
根据要求配置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了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)