簡介 MySQL作為世界上使用最為廣泛的資料庫之一,免費是其原因之一。但不可忽略的是它本身的功能的確很強大。隨著技術的發展,在實際的生產環境中,由單台MySQL資料庫伺服器不能滿足實際的需求。此時資料庫集群就很好的解決了這個問題了。採用MySQL分散式集群,能夠搭建一個高併發、負載均衡的集群伺服器( ...
簡介
MySQL作為世界上使用最為廣泛的資料庫之一,免費是其原因之一。但不可忽略的是它本身的功能的確很強大。隨著技術的發展,在實際的生產環境中,由單台MySQL資料庫伺服器不能滿足實際的需求。此時資料庫集群就很好的解決了這個問題了。採用MySQL分散式集群,能夠搭建一個高併發、負載均衡的集群伺服器(這篇博客暫時不涉及)。在此之前我們必須要保證每台MySQL伺服器里的數據同步。數據同步我們可以通過MySQL內部配置就可以輕鬆完成,主要有主從複製和主主複製。
環境
(1)主庫(192.168.56.1):Win10 CMD Server version: 5.7.10-log MySQL Community Server (GPL) (綠色版)
(2)從庫(192.168.56.101):Centos7 Server version: 5.7.17-log MySQL Community Server (GPL)
一、準備工作
已經安裝好,並且清空兩邊數據
二、主庫(win10)配置文件
server-id=167
log-bin=C:\Program Files\mysql-5.7.10-winx64\logs
log-bin-index=C:\Program Files\mysql-5.7.10-winx64\logs
三、從庫(Linux)配置文件
server-id=168
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
四、在主庫上創建一個賬戶,提供給從庫連接(主庫操作)
#主庫: 192.168.56.1
#從庫: 192.168.56.101
#用戶:eddie
#密碼:eddie
#授權:192.168.56.101
mysql> GRANT REPLICATION SLAVE ON *.* TO 'eddie'@'192.168.56.101' IDENTIFIED BY 'eddie';
Query OK, 0 rows affected, 1 warning (0.53 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.06 sec)
五、查詢主庫信息 (主庫操作)
mysql> SHOW MASTER STATUS;
+-------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------+----------+--------------+------------------+-------------------+
| logs.000007 | 154 | | | |
+-------------+----------+--------------+------------------+-------------------+
六、在從庫配置主庫配置的用戶名密碼和二進位文件位置
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.56.1', MASTER_USER='mysql101', MASTER_PASSWORD='mysql101',MASTER_LOG_FILE='logs.000007', MASTER_LOG_POS=154;
七、測試主從複製是否成功
mysql>SLAVE START;
mysql>SHOW SLAVE STATUS\G
# 當看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態正常!
八、對錶操作
【=主庫=】 #創建庫 CREATE DATABASE abc; #使用庫 USE abc; #創建表 CREATE TABLE tab1(id INT AUTO_INCREMENT,NAME VARCHAR(10),PRIMARY KEY(id)); #插入數據 mysql> insert into tab1 (name) value('11'),('11'),('11'); Query OK, 3 rows affected (0.10 sec) Records: 3 Duplicates: 0 Warnings: 0 #查看庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | aa | | abc | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) #查看表 SHOW TABLES; mysql> show tables; +---------------+ | Tables_in_abc | +---------------+ | tab1 | +---------------+ 1 row in set (0.00 sec) #表數據 mysql> select * from tab1; +----+------+ | id | name | +----+------+ | 1 | 12 | +----+------+ 1 row in set (0.00 sec) 【=從庫=】 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | abc | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.06 sec) mysql> use abc; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +---------------+ | Tables_in_abc | +---------------+ | tab1 | +---------------+ 1 row in set (0.00 sec) mysql> select * from tab1; +----+------+ | id | name | +----+------+ | 1 | 12 | +----+------+ 1 row in set (0.00 sec)
備註: 本人在做這個的時候出現幾個問題,就不一一貼出來,希望到動手查一下,或者留言!