MySQL是目前輕量級資料庫MySQL的冗餘方案之首選
以下是MySQL的非同步主從複製的配置過程
先配置系統yum,此處不已源碼包的安裝過程為例來介紹了!
也不再介紹yum的配置過程,從安裝mysql開始
推薦閱讀:
- Ubuntu下Nginx做負載實現高效能WEB伺服器5---MySQL主主同步
- 生產環境MySQL主主同步主鍵衝突處理
- MySQL主從失敗 錯誤Got fatal error 1236
- MySQL主從複製,單台伺服器上實施
此處用兩個主機安裝
master:192.168.0.111
slave:192.168.0.222
安裝MySQL(主從兩個節點上都安裝)
yum -y install mysql mysql-server
建立mysql的資料目錄(兩個節點)
mkdir /opt/mysql_data && chown -R mysql.mysql /opt/mysql_data && chmod 766 /opt/mysql_data
配置mysqld(master節點)
編輯/etc/my.cnf內容如下,先啟動mysql的(兩個節點):
[mysqld]
character-set-server = utf8
datadir=/opt/mysql_data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
啟動mysqld:
service mysqld start && chkconfig --level 35 mysqld on
************************************************
注意:此處以主從複製為主題不討論iptables
和SELinux,所以事先關閉SELinux和iptables
否則mysqld會起不來
************************************************
建立要同步的資料庫和同步的使用者(在master節點)
mysql> grant replication slave,reload,super on *.* to cai@192.168.0.222 identified by 'cai'; //建立cai使用者
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to cai@192.168.0.222 identified by 'cai';
Query OK, 0 rows affected (0.00 sec)
mysql> create database caidb; //建立要同步的資料庫
Query OK, 1 row affected (0.00 sec)
mysql> show databases; select user,host from mysql.user; //查看建立的庫和使用者資訊
+--------------------+
| Database |
+--------------------+
| information_schema |
| caidb |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)
+------+---------------+
| user | host |
+------+---------------+
| root | 127.0.0.1 |
| cai | 192.168.0.222 |
| | localhost |
| root | localhost |
| | master |
| root | master |
+------+---------------+
6 rows in set (0.00 sec)
在slave節點上嘗試串連master,測試網路和使用者的可用性:
[root@slave ~]# mysql -ucai -pcai -h 192.168.0.111 -e "select user,host from mysql.user;show databases;" //用cai登入遠端資料庫192.168.0.111,執行sql “show databases”
+------+---------------+
| user | host |
+------+---------------+
| root | 127.0.0.1 |
| cai | 192.168.0.222 |
| | localhost |
| root | localhost |
| | master |
| root | master |
+------+---------------+
+--------------------+
| Database |
+--------------------+
| information_schema |
| caidb |
| mysql |
| test |
+--------------------+
在要同步的資料庫中建立表和類比資料(在master)
mysql> create table `caitable` (`id` int(5) NOT NULL auto_increment, `name` varchar(32) NOT NULL, `password` char(32) NOT NULL, PRIMARY KEY (`id`)); //建立表
插入類比資料用一下指令碼:
[root@master ~]# cat ist.sh
#!/bin/bash
for ((i=1; i<=10; i++)) //迴圈插入10條資料
do
mysql -uroot -e "insert into caidb.caitable(id,name,password) value ('$i','user$i',md5('usercai$i'));"
done
mysql -uroot -e "select * from caidb.caitable;" //查詢插入的資料
接下來請看第2頁: