Mysql主從同步

搭建MySQL主從複製

安裝環境:

兩臺centos 7虛擬機

一、建立時間同步環境,在主節點上搭建時間同步服務器

主服務器設置

1、安裝ntp
[root@localhost~]#yum install ntp -y
2、配置ntp
[root@localhost~]#vim /etc/ntp.conf  //添加下面兩行
server 127.127.200.0     //本地時鐘源
fudge  127.127.200.0 stratum 8  //設置時間層級爲8(限制在15層以內)

注意:這裏127.127.200.0一一對應主服務器的192.168.200.0,如果主服務器爲192.168.100.0,則本地時鐘源爲127.127.100.0,前兩部分始終不變

[root@localhost~]#systemctl start ntpd.service
[root@localhost~]#systemctl stop firewalld.service
[root@localhost~]#setenforce 0
3、節點服務器設置:
[root@localhost~]#yum install ntp  ntpdate -y
[root@localhost~]#systemctl start ntpd.service
[root@localhost~]#systemctl stop firewalld.service
[root@localhost~]#systemctl stop firewalld.service
[root@localhost~]#setenforce 0
[root@localhost~]#/usr/sbin/ntpdate master_server IP   //進行時間同步

二、安裝MySQL數據庫,在Master和Slavel上安裝

1、安裝環境包:
[root@localhost~]#yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
gcc  \
gcc-c++
2、編譯安裝Mysql:
[root@localhost~]#useradd -s /sbin/nologin  mysql    //創建mysql用戶
[root@localhost~]#mkdir /abc
[root@localhost~]#mount.cifs //vmnet8_ip  /abc
[root@localhost~]#cd /abc
[root@localhost abc]#tar zxvf  mysql-5.7.17.tar.gz -C /opt/
 [root@localhost abc]#tar zxvf boost_1_59_0.tar.gz -C /usr/local/
 [root@localhost abc]#cd /usr/local
 [root@localhost local]#mv boost_1_59_0 boost  //便於識別
 [root@localhost local]#cd opt/mysql-5.7.17/
 [root@localhost mysql-5.7.17]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \       //指定目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //連接文件
-DSYSCONFDIR=/etc \                          //配置文件目錄
-DSYSTEMD_PID_DIR=/usr/local/mysql \         //進程文件
-DDEFAULT_CHARSET=utf8  \                    //字符集
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \     //數據庫
-DWITH_BOOST=/usr/local/boost \            //支持c++庫
-DWITH_SYSTEMD=1

注意:如果在CMAKE的過程中有報錯,當報錯解決後,需要把源碼目錄中的CMakeCache.txt文件刪除,然後再重新CMAKE,否則錯誤依舊

[root@localhost mysql-5.7.17]#make && make install
[root@localhost mysql-5.7.17]#chown -R mysql.mysql /usr/local/mysql
[root@localhost mysql-5.7.17]#vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
![](http://i2.51cto.com/images/blog/201807/10/60aa994307427a5fc19112d1e2ed54d6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

##### 3、優化調整
[root@localhost mysql-5.7.17]#chown mysql.mysql  /etc/my.cnf //更改屬主、屬組權限
[root@localhost mysql-5.7.17]#echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.17]#echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.17]#source /etc/profile
##### 4、初始化數據庫
[root@localhost mysql-5.7.17]#cd /usr/local/mysql/
[root@localhost mysql]#bin/mysqld \
--initialize-insecure \     //生成初始化的密碼,爲空,後面需要設置
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost mysql]#cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/    //方便系統識別管理
[root@localhost mysql]#systemctl daemon-reload   //刷新識別命令
##### 5、重啓Mysql服務
 [root@localhost mysql]# systemctl restart mysqld
 [root@localhost mysql]# netstat -anpt | grep 3306  //查看端口是否開啓
 [root@localhost mysql]#systemctl enable mysqld
 [root@localhost mysql]#mysqladmin -u root -p password "abc123" //給root賬號設置密碼爲abc123提示輸入的是原始密碼
 [root@localhost mysql]#mysql -u root -p

顯示下圖則表示數據庫搭建成功

三、配置Mysql Master 主服務器

1)在 /etc/my.cnf中修改或者增加以下內容,在[mysqld]下配置
 server-id     =11     //主從服務器id不能相同
 log-bin=master-bin    //改爲master
 log-slave-updates=true   //同步從服務器
2)重啓Mysql服務,重新加載修改後的配置文件
 [root@localhost ~]#systemctl mysqld.service
3)登錄Mysql程序,給從服務器授權
 [root@localhost ~]#mysql -u root -p

Mysql主從同步

四、配置從服務器

1)在/etc/my.cnf中修改或增加以下內容
 [root@localhost ~]#vim /etc/my.cnf
 server-id       = 22

relay-log=relay-log-bin                         //從主服務器上同步日誌文件記錄到本地//
relay-log-index=slave-relay-bin.index           //定義relay-log的位置和名稱//

這裏注意server-id不能和主服務器相同

2)重啓Mysql服務
 [root@localhost ~]#systemctl mysqld.service
3)登錄Mysql,配置同步

根據主服務器更改maste_log_file和master_log-pos的參數
mysal>
change master to master_host='master_server_ip',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=604;

4)啓動同步

mysql>start salve;

5)查看Slave狀態,確保以下兩個值爲YES

Mysql主從同步

6)驗證主從複製效果

Mysql主從同步
Mysql主從同步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章