一、原理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)
修改從的配置文件同步
《眼睛累,明天繼續》