MySQL主从配置

建议: MySQL主从机制比较脆弱,谨慎操作。如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start. 

 

1.安装、配置MySQL

删除之前的配置:cd /usr/local/;rm -rf mysql

 

重新配置主mysql

cd /usr/local/src/

下载mysql:wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
解压:tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz

移动解压包:mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql

建立mysql用户:useradd -s /sbin/nologin mysql

进入mysql目录:cd /usr/local/mysql

拷贝配置文件: cp support-files/my-small.cnf /etc/my.cnf

拷贝启动脚本:cp support-files/mysql.server /etc/init.d/mysqld

修改启动脚本:vim /etc/init.d/mysqld 

basedir=/usr/local/mysql

datadir=/data/mysql

初始化mysq数据库:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

重启mysql服务:/etc/init.d/mysqld restart

 

做从mysql

cd /usr/local/; cp -r mysql mysql_slave; cd mysql_slave;

拷贝配置文件:cp /etc/my.cnf ./my.cnf

修改配置文件相关参数:vim my.cnf  #更改port 以及 socket

[mysqld]

port            = 3307
socket          = /tmp/mysql_slave.sock
datadir         =/data/mysql_slave

初始化mysql_slave数据库:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql_slave
启动mysql_slave:

cd /etc/init.d/

拷贝启动脚本:cp mysqld   /etc/init.d/mysqld_slave
配置启动脚本:vim !$

basedir=/usr/local/mysql_slave
datadir=/data/mysql_slave
conf=$basedir/my.cnf

/etc/init.d/mysqldslave start

 netstat -lnp | grep mysql

 


 

 

2.配置主从准备工作

设定,mysq为主端口3306,mysql_slavel为从端口为3307
mysql登录方式: mysql -h127.0.0.1 -P3307; mysql -S  /tmp/mysql_slave.sock
在主上创建测试库: create database db1;
然后导出主的mysql库数据然后导入给db1
mysqldump -S /tmp/mysql.sock mysql > 123.sql
mysql -S /tmp/mysql.sock db1 < 123.sql

 


 

 

3. 配置主(master)
vim /etc/my.cnf  #修改或添加:
server-id=1  //主从id不一样即可
log-bin=mysql-bin  
两个可选参数(2选1):
binlog-do-db=db1,db2 #需要同步的库
binlog-ignore-db=mysql #忽略不同步的库
修改配置文件后,重启mysql



grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123123';

flush privileges; #刷新
flush tables with read lock;  #锁表
show master status; #一定要记住前两列的内容,一会会用到

 


 

4. 设置从(slave)
 vim /usr/local/mysql_slave/my.cnf   #修改或增加
server-id = 2 #这个数值不能和主一样

/etc/init.d/mysqld_slave restart
find / -name 123.sql

拷贝主的db1库数据到从(同步的前提是库名相同):mysql -S /tmp/mysql_slave.sock  -e "create database db1"; mysql  -S /tmp/mysql_slave.sock db1 < 123.sql

mysql  -S /tmp/mysql_slave.sock  #登陆从的mysql

指定主的host、port等:
change master to master_host='127.0.0.1', master_port=3306, master_user='repl', master_password='123123', master_log_file='mysql-bin.000002', master_log_pos=106;
slave start;
从上查看从的状态: show slave status\G;(如果不是两个yes,调试后,先slave stop,再slave start;show slave status\G;)

 



5. 测试主从

主上:unlock tables;
主上清空db1库的db表 :use db1; select count(*) from db"; truncate table db;  
进入slave,查看db1库db表: use db1; select count(*) from db";  
主上删除表db: drop table db;
从上看db表不存在了

 

posted @ 2015-12-02 19:05  沐风先生  阅读(163)  评论(0)    收藏  举报