mysql主从复制的实现(双机)

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

mysql主从复制的实现(双机),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。