早就想写一篇关于数据库主从复制的文章,今天利用一些琐碎的时间操作了一遍并记录下来:
首先,我们必须思考,主从复制的大概步骤是什么,即使你不懂数据库这块,我想这个步骤好好想下还是知道的,我们知道数据库是跟用户关联的,那么首先必须建立一个用户,然后授权,这个用户在哪里建立呢?数据来源是主库,当然是在主库里面建立用户了,是的,然后需要利用数据库提供的命令在从库里面对在主库建立的用户一个授权操作,然后就OK了,大概步骤如下:
对于主库
-
编辑/etc/my.cnf,添加以下内容
vi /etc/my.cnf
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog-do-db=mysql_hadoop
binlog_ignore_db=mysql
server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=mysql_hadoop是表示只备份mysql_hadoop。
binlog_ignore_db=mysql表示忽略备份mysql。
重启数据库 service mysqld restart
登陆数据库 mysql -uroot -p123456
新建用户并授权 CREATE USER ‘mysql‘@‘192.168.32.129‘ IDENTIFIED BY ‘mysql‘;
GRANT REPLICATION SLAVE ON *.* TO ‘mysql‘@‘192.168.32.129‘ IDENTIFIED BY ‘mysql‘;锁定数据 FLUSH TABLES WITH READ LOCK;
导出数据库 mysqldump -u root -p123456 --all-databases --lock-tables=false -- > /root/all.sql
解锁数据表 UNLOCK TABLES;
对于从库
导入主库的数据库 mysql -u root -p123456 < /root/all.sql
-
编辑 /etc/my.cnf
vi /etc/my.cnf
增加 server-id=2
-
重启从数据库
service mysqld restart
-
授权于主库连接命令
CHANGE MASTER TO
MASTER_HOST=‘192.168.32.128‘,
MASTER_USER=‘mysql‘,
MASTER_PASSWORD=‘mysql‘,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘mysql-bin.000001‘,
MASTER_LOG_POS=98,
MASTER_CONNECT_RETRY=10;PS:MASTER_HOST:主服务器的IP。
MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。 启动slave START SLAVE;
本文出自 “陈砚羲” 博客,请务必保留此出处http://chenyanxi.blog.51cto.com/4599355/1558155