Mysql的主從複製至少是需要兩個Mysql的服務,當然Mysql的服務是可以分佈在不同的伺服器上,也可以在一臺伺服器上啟動多個服務,首先確保主從伺服器上的Mysql版本相同。 一、安裝部署mysql 二、設置密碼 三、開啟MySQL遠程登錄 #查看規則是否生效 iptables -L -n # 或 ...
Mysql的主從複製至少是需要兩個Mysql的服務,當然Mysql的服務是可以分佈在不同的伺服器上,也可以在一臺伺服器上啟動多個服務,首先確保主從伺服器上的Mysql版本相同。
一、安裝部署mysql
1、 安裝伺服器端:yum install mysql-server yum install mysql-devel 安裝客戶端: yum install mysql 2、 啟動服務: service mysqld start
二、設置密碼
/usr/bin/mysql_secure_installation
三、開啟MySQL遠程登錄
登錄資料庫:mysql -u root -p123456 #root賬號 #123456資料庫密碼
切換到mysql系統資料庫:use mysql;
修改user表用戶許可權:update user set host='%' where host='127.0.0.1';
重載系統許可權:flush privileges; #這個一定要執行
開啟3306遠程埠許可權:iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
查看規則是否生效:iptables -L -n 或者 :service iptables status
重啟mysql服務:service mysqld restart
二、配置mysql主從同步
準備兩台測試的虛擬機,如上安裝mysql環境,並開啟mysql服務
主master : 192.168.2.46
從slave : 192.168.227.129
修改主庫配置文件,開啟binlog,並設置server-id,每次修改配置文件後都要重啟mysql服務才會生效:vim /etc/my.cnf ,在該配置文件[mysqld]下麵添加下麵內容:
[mysqld] log-bin=/var/lib/mysql/binlog server-id=1 binlog-do-db = cmdb #cmdb要同步的資料庫名 binlog-ignore-db = mysql 不同步mysql庫和test庫 binlog-ignore-db = test datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock ......
server-id:master端的ID號;
log-bin:同步的日誌路徑及文件名,一定註意這個目錄要是mysql有許可權寫入的;
修改配置文件後,重啟服務:service mysqld restart
查看主伺服器當前二進位日誌名和偏移量,這個操作的目的是為了在從資料庫啟動後,從這個點開始進行數據的恢復
mysql> show master status; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | binlog.000001 | 106 | cmdb | | +---------------+----------+--------------+------------------+ row in set (0.00 sec)
創建需要同步的資料庫:create database cmdb default charset utf8;
主伺服器已配置好。
2、配置從庫
理所當然也是從配置文件著手,在/etc/my.cnf 添加下麵配置:
[mysqld] server-id=2 master-host=192.168.2.46 master-user=root master-password=123456 master-port=3306 replicate-do-db=cmdb ......
啟動slave進程
mysql> slave start; Query OK, 0 rows affected (0.04 sec)
查看slave的狀態,如果下麵兩項值為YES,則表示配置正確:show slave status\G: