MYSQL 主从复制的建立
一:安装mysql
其实很简单的东西这个过程我大概做了四个小时就好了。包括系统安装和mysql的安装
操作系统:红帽5.5
数据库版本:mysql-5.5.36
在安装操作系统的时候由于我是断网操作,所以选择安装定制软件的时候做如下操作。
简单的安装过程如下。跟以前的源码安装不一样。这里不解释那么多了
不过我在断网下安装所以安装操作系统的时候需要做如下配置
mkdir -p /usr/local/mysql/ mkdir -p /data/mysql/ groupadd mysql useradd -g mysql mysql chown mysql:mysql -R /data/mysql/ wget http://wwwNaNake.org/files/v2.8/cmake-2.8.4.tar.gz tar zxvf cmake-2.8.4.tar.gz ./configcure gmake gmake install tar zxvf mysql-5.5.36.tar.gz cd mysql-5.5.36 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 make make install cp support-files/my-medium.cnf /etc/my.cnf chmod 755 scripts/mysql_install_db scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ cp support-files/mysql.server /etc/init.d/mysql chmod 755 /etc/init.d/mysql chkconfig mysql on chkconfig --list | grep mysql /usr/local/mysql/bin/mysql /usr/local/mysql/bin/mysql -uroot -p 二:环境变量设置 上面的这些东西不解释那么多了。就是安装过程,不过接下来还要设置一个环节变量。这个环境变量才是比较给力啊。 将mysql 的bin目录加到PATH中,在/etc/profile中加入myslq/bin,顺便增加两个别名方便操作 export PATH=/usr/local/mysql/bin:$PATH //开关客户端 alias mysql_start="mysqld_safe&" alias mysql_stop="mysqladmin -uroot -p shutdown"
三:主从复制理论
这里我暂时还不是很清楚,大概的意思是mysql的日志有三种,所有日志,满查询和二进制日志。二进制日志能实现所有数据库的备份和恢复。大概就只这样吧。而监控可以在从服务器监控
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
看着两个是不是yes的如果是,那么就说明在主从同步过程中。可以使用nagios监控这两个参数。
买了本书,正好有这个,所以这两天会做这么一个测试吧。
四:配置文件参数设置
主和从服务器配置文件my.cnf的设置。
主从复制
修改主服务器master:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=129 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
修改从服务器slave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=130 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
重启两台服务器的mysql
/etc/init.d/mysql restart
上面的这些参数是必须填写的,还有很多优化和进阶的东西慢慢看,慢慢理解,先把mysql主从搞成功先。
五:其它配置项
主服务插入一条记录如下
GRANT REPLICATION SLAVE ON *.* TO ‘zhucong2‘@‘192.168.206.130‘ IDENTIFIED BY ‘zhucong111‘;
使用flush privileges;来刷新数据库使权限设置生效。
flush tables with read lock;
锁定表,不让数据增删改
然后备份所有数据库
mysqldump -uroot -p --all-databases > /home/all.sql
这里把事务和mysql数据库也一同备份了。所以会有警告,不过本着学习速度优先原则,没有去掉mysql数据库,原则上是要去掉这个裤的啊。
备份好就可以解锁了。使用
UNLOCK TABLES;
然后拷贝到从服务器上,导入数据库
Mysql -uroot -p < /all.sql
这样就能导入了
接下来我们在主服务器查看
show master status;
主要设置两个参数如下图。File和positon
change master to master_host=‘192.168.206.129‘,master_user=‘zhucong2‘,master_password=‘zhucong111‘,master_log_file=‘mysql-bin.000006‘,master_log_pos=4155;
原理是不变的,之前我设置错误了,然后改成后面用的帐号。其他皆不变啊。
然后在从服务器开启slave和查看slave状态
如下使用命令slave start或是start slave都可以开启服务。
使用show slave status \G;查看slave的状态详细信息
如下图
那么接下来我就可以查看同步的数据了.首先是删除master上创建的数据库之后看从服务器上恢复master的数据有没有被删除.
很显然这里被删除了.说明数据已经主从能同步了.
之后再主中创建一个库和新增数据看在看看.
如下图
该睡觉了.....
本文出自 “苍狼飞鹰” 博客,请务必保留此出处http://anqyunwei.blog.51cto.com/2239147/1370932