一、原理mysql
master上数据更新时会记录到一个bin-log,slave会实时同步该bin-log,而后slave根据bin-log的sql语句进行相应的操做。sql
实时备份,也能够实现读写分离,减小I/O。vim
能够1主多从,或者相互主从。
dom
二、安装两个mysqlsocket
[root@localhost local]# cp -r mysql/ mysql3/ //复制 [root@localhost local]# mkdir /data/mysql3 [root@localhost local]# chown -R mysql:mysql /data/mysql3 [root@localhost local]# cd mysql3/ [root@localhost mysql3]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql3 //初始化 [root@localhost mysql3]# cp /etc/my.cnf ./ [root@localhost mysql3]# vim my.cnf //修改配置文件 [mysqld] port = 3307 socket = /tmp/mysql3.sock datadir = /data/mysql3 user = mysql pid-file = /data/mysql1/localhost.pid
3307端口做为主。ide
[root@localhost ~]# mysql -uroot -p123456 -P3307 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.1.40 MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database db1; //建立一个db1库 Query OK, 1 row affected (0.06 sec) mysql> Bye [root@localhost ~]# mysqldump -uroot -p123456 -P3307 db1 > /tmp/db1.sql //导出 [root@localhost ~]# mysql -uroot -p123456 -P3307 db1 < /tmp/db1.sql //导入
修改mysql3配置文件
server
[root@localhost ~]# vim /usr/local/mysql3/my.cnf //添加下面两句 log-bin=zhouyan server-id = 1
重启mysql3ip
[root@localhost ~]# ps aux |grep mysql3 mysql 2013 0.0 6.5 211560 21380 ? Sl 17:21 0:00 /usr/local/mysql3/bin/mysqld --basedir=/usr/local/mysql3 --datadir=/data/mysql3 --user=mysql --log-error=/data/mysql3/localhost.localdomain.err --pid-file=/data/mysql1/localhost.pid --socket=/tmp/mysql3.sock --port=3307 root 2162 0.0 0.2 4356 736 pts/1 S+ 17:36 0:00 grep mysql3 [root@localhost ~]# kill 2013 [root@localhost ~]# /usr/local/mysql3/bin/mysqld_safe --defaults-file=/usr/local/mysql3/my.cnf --user=mysql & [root@localhost mysql3]# ls /data/mysql3 ibdata1 ib_logfile1 localhost.localdomain.err-old test zhouyan.index ib_logfile0 localhost.localdomain.err mysql zhouyan.000001 //以这种格式生成
[root@localhost mysql3]# vim /usr/local/mysql3/my.cnf binlog-do-db=db1 //指定须要同步的库 #binlog-ignore-db=mysql //忽略不一样步的库
[root@localhost mysql3]# kill 2277 [root@localhost mysql3]# ps aux |grep mysql3 root 2167 0.0 0.4 5064 1332 pts/1 S 17:37 0:00 /bin/sh /usr/local/mysql3/bin/mysqld_safe --defaults-file=/usr/local/mysql3/my.cnf --user=mysql mysql 2277 0.1 6.5 211572 21196 pts/1 Sl 17:37 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql3/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql3 --user=mysql --log-error=/data/mysql3/localhost.localdomain.err --pid-file=/data/mysql1/localhost.pid --socket=/tmp/mysql3.sock --port=3307 root 2298 0.0 0.2 4356 740 pts/1 S+ 17:42 0:00 grep mysql3 //这种kill不掉时,不要使用kill -9,由于还有数据没写完,耐心等待。 [root@localhost mysql3]# kill -HUP 2277 //从新加载
设置从的登陆mysql帐号和密码input
[root@localhost mysql3]# mysql -uroot -P3307 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.1.40 MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123456'; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
修改从的配置文件同步
《眼睛累,明天继续》