mysql同步
已安装好mysql,并且已把配置文件复制在/etc/my.cnf 主服务器的配置: 1,查看二进制日志的状态,开启二进制日志 进入mysql安装目录 #cd /usr/local/mysql 进入mysql #bin/mysql -uroot -p 提示密码直接输入回车进入mysql(root没改密码默认空) mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+ 如果没有上面 log_bin 显示的off状态,则退出mysql,修改mysql配置文件 mysql> exit #vi /etc/my.cnf 在[mysqld]的配置中,最后一行添加如下行 log-bin=mysql-bin 2,更改mysql服务器的server id server-id = 1 保存并重启mysql服务器使生效: 按esc输入:wq #service mysqld restart 3,建立仅限slave主机使用的专门用于进行复制数据的用户: 进入mysql #bin/mysql -uroot -p mysql> grant replication client,replication slave on *.* to username@'192.168.189.131' identified by 'password'; 192.168.189.131为从机ip 刷新授权表,使账户立即生效: mysql> flush privileges; 4,清空日志: mysql> flush master; 从服务器的配置: 1, #vi /etc/my.cnf 在[mysqld]的配置中注释掉如下行: log-bin=mysql-bin 变成 #log-bin=mysql-bin 在注释掉的log-bin=mysql-bin下一行添加: relay-log=relay-bin 2,修改server id: server id标识一台mysql服务器,为了避免循环复制,主从服务器的server id必须不同 在[mysqld]的配置中修改: server-id = 2 保存退出 按esc输入:wq 重启服务器: #service mysqld restart 3,指定主服务器: 进入mysql安装目录 #cd /usr/local/mysql 进入mysql #bin/mysql -uroot -p 这里指定的要和在主服务器上建立的用户相同: mysql> change master to master_host='192.168.189.128',master_user='username',master_password='password'; 192.168.189.128为主服务器ip 4,启动从服务器进程并查看运行状态; mysql> start slave; mysql> show slave status\G 如果出现如下行,则表明正常启动 Slave_IO_Running: Yes Slave_SQL_Running: Yes 退出mysql mysql> exit 好了,这样我们的主从服务器就搭建好了,从服务器不能进行写操作,否则同步时效。 如果主服务器一开始就有大量数据,需手动使用软件备份,在从服务器上还原数据,再同步 还有主从半同步的实现但只有mysql-5.5版本之后才支持