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;