前言
LNMP 分散式叢集的部署實踐 系列文章:
- 《(一):Nginx+PHP平臺搭建與負載均衡配置》
- 《(二):NFS檔案伺服器的搭建與檔案緩衝上傳的配置》
- 《(三):MySQL主從資料庫伺服器的搭建》
- 《(四):Memcached 快取伺服器的搭建》
- 《(五):ThinkPHP專案部署》
- 《(六):keepalived 高可用方案》
回顧一下基本的架構:
這一篇我們部署7、8號機,MySQL資料庫伺服器。
配置
原始碼編譯安裝MySQL(7號機)
使用的mysql版本是 Generic Linux (Architecture Independent), Compressed TAR Archive(mysql-5.5.61.tar.gz) 。
# 安裝依賴
yum -y install gcc-c++ cmake ncurses-devel
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.61.tar.gz
tar -zxf mysql-5.5.61.tar.gz
cd mysql-5.5.61
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install && cd ..
複製程式碼
配置 MySQL(7號機)
# 配置資料儲存目錄和sock檔案儲存目錄
vi /etc/my.cnf
datadir=/data/mysql
socket=/tmp/mysql.sock
# 必須給目錄賦予許可權
chown -R mysql:mysql /data/mysql
# 建立mysql使用者
useradd -s /sbin/nologin -M mysql # -m:自動建立使用者的登入目錄;-M:不要自動建立使用者的登入目錄;-s<shell>:指定使用者登入後所使用的shell;
# 初始化資料庫
cd /usr/local/mysql
./scripts/mysql_install_db
# 啟動MySQL並新增到服務
cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
service mysql start
# 開放3306埠
netstat -tnlp | grep mysql
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save # 不能用的話要麼更新,要麼更改配置檔案,這在上一篇文章有講
# 配置MySQL中的使用者
cd /usr/local/mysql/bin
./mysql
UPDATE mysql.user SET password=password('123456') WHERE user='root';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
EXIT
複製程式碼
實現 MySQL 主從複製
-
在 7 號機(主)中完成 mysql 的安裝之後,克隆出 8號機(從,注意網路IP的配置) 。
-
在7 號機(主)中開啟 bin 日誌(二進位制日誌,用於資料庫增量備份,資料庫之間複製等)。
vi /etc/my.cnf
[mysqld]
...
log-bin=mysqlbin-log # 表示檔名為mysqlbin-log
server-id=17 # 表示伺服器的唯一ID,可用伺服器IP的最後一位
service mysql restart
cd /data/mysql
ll | grep mysqlbin # 當需要和其他伺服器資料同步時,會通過這些日誌讀取資料庫的更改記錄
複製程式碼
- 建立用於主從複製的使用者
/usr/local/mysql/bin/mysql -uroot -p123456
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.177.18' IDENTIFIED BY '123456';
SHOW MASTER STATUS;
EXIT;
複製程式碼
- 配置從伺服器
vi /etc/my.cnf
server-id=18
service mysql restart
/usr/local/mysql/bin/mysql -uroot -p123456
CHANGE MASTER TO master_host='192.168.177.17', master_user='slave',
master_password='123456', master_log_file='mysqlbin-log.000001', master_log_pos=263;
START SLAVE;
SHOW SLAVE STATUS \G
複製程式碼
LNMP 分散式叢集的部署實踐 系列文章:
- 《(一):Nginx+PHP平臺搭建與負載均衡配置》
- 《(二):NFS檔案伺服器的搭建與檔案緩衝上傳的配置》
- 《(三):MySQL主從資料庫伺服器的搭建》
- 《(四):Memcached 快取伺服器的搭建》
- 《(五):ThinkPHP專案部署》
- 《(六):keepalived 高可用方案》
dfface 的版權宣告:所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明出處,嚴禁商業用途!