主mysql 和从mysql实现双机同步的配置

 

1 安装mysql  (两台都装)
http://www.google.cn/search?hl=zh-CN&client=firefox-a&channel=s&rls=org.mozilla%3Azh-CN%3Aofficial&newwindow=1&q=linux+mysql%E6%BA%90%E4%BB%A3%E7%A0%81%E5%AE%89%E8%A3%85&btnG=Google+%E6%90%9C%E7%B4%A2
groupadd 500 mysql
useradd 500 mysql -g mysql
tar 包
进目录
./congure --prefix=/usr/local/mysql
make
make install
cd 包解压的目录
拷贝 配置文件 到/etc/my.cnf
cp /usr/local/mysql/bin/mysql /usr/sbin
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
cd /usr/local/mysql
chown -R root .
chown -R mysql var
chgrp -R mysql var
/usr/local/mysql/bin/msyqld_install --user=mysql &
/usr/local/msyql/bin/mysql_sate --user=msyql &

双击备份
master
vi /etc/my.cnf
修改server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
default-character-set   = utf8 
保存后推出

进入master 的mysql
建立一个slave服务器的用户账号
mysql >  grant replication slave on *.* to [email protected] identified by 'ypmwbg';     //给予权限

如果同步之前master数据库是空的 可以忽略这一步
进入master数据库的Mysql控制台执行
mysql >FLUSH TABLES WITH READ LOCK;   //锁表
然后从新打开一个 终端 拷贝 master 的所有的数据到 slave 服务器覆盖
读取  master 二进制文件与偏移量
mysql > show master status;
同样 要记录下 file 与 position 的值
然后解锁
mysql > unlock tables;

slave服务器 vi /etc/my.cnf   如果要配置双机  那么master也要写

server-id               = 2
master-host             = 192.168.6.4
master-user             = ludy
master-password         = ypmwbg
master-port             = 3306
log_bin                 = /var/log/mysql/mysql-bin.log
log-slave-updates
skip-slave-start
配置完后 重新启动mysql

然后进入 m master 服务器

use mysql

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      98  |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
记住  | mysql-bin.000001 |      98 

进入 slave mysql
use mysql

mysql>  change master to master_log_file='mysql-bin.000001', master_log_pos=98;

//这个地方就是记录下来的 mysql1 master 的数据

mysql > start slave;  //启动slave 服务

mysql > show slave status\G

[newpage]
完毕!!!!!!!!11
grant slave replication slave to [email protected] identified by ''
flush privileges
reset master  
change master master_log_file='mysql-bin.000001',master_log_pos=98;
这个两个很重要

重启后如果不同步   看日志   
reset master  
change master to  master_log_file='mysql-bin.000001',master_log_pos=934;

如果修改了主服务器的配置,记得删除从服务器上的master.info文件。否则从服务器使用的还是老配置,可能会导致错误。


单独同步主从服务器上的一个表 
如:从服务器cong 需要同步主服务器zhu  数据库domaincenter 中的domain_dns_records 表

zhu 服务器的操作

mysql domaincerter
lock table domain_dns_records write;
flush table domain_dns_records;
reset master;

cong 服务器的操作
mysql -e "stop slave"
mysql -e "reset slave"
service mysqld stop

zhu 服务器的操作。
scp /var/lib/mysql/domaincenter/domain_dns_records.* cong:/var/lib/mysql/domaincenter/


cong 服务器的操作
service mysqld start

zhu 服务器的操作
unlock tables;

 


 

你可能感兴趣的:(双机同步)