MySQL-高可用集羣搭建
1. 簡介
1. MySQL使用很是普遍,主要緣由是輕量級(相比於Oracle),開源的(免費)。使用的多,涉及到的話題就多,主要有:
1. 性能優化
2. 高可用
3. 安全
4. 備份
5. 集羣
6. 橫向擴展
7. 縱向擴展
8. 負載均衡
9. 讀寫分離等。
2. 這節主要介紹下 CentOS7 下的高可用集羣環境的搭建,後續更新相關的其餘知識點
2. 環境安裝
1. 先檢查系統是否裝有 MySQL
1. rpm -qa | grep mysql
2. 返回爲空則表示沒有安裝,無論是夠有返回值均可以繼續安裝
2. 下載MySQL的repo源
1. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 報錯 : -bash wget : 未找到命令
3. 安裝插件 : yum -y install wget
3. 安裝mysql-community-release-el7-5.noarch.rpm包
1. sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
4. 安裝 MySQL
1. sudo yum install mysql-server
5. 重置MySQL密碼
1. mysql -u root
2. 報錯: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
3. 緣由是/var/lib/mysql的訪問權限問題。 解決 chown root:root /var/lib/mysql/
6. 重啓 MySQL服務
1. service mysqld restart
7. 設置登陸密碼
1. mysql -u root
2. use mysql; 進入mysql database
3. update user set password=password('123456') where user='root'; 設置root用戶的密碼
4. exit; 退出重啓服務 service mysqld restart
8. 接着設置Root帳戶遠程鏈接密碼
1. mysql -u root -p
2. GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
3. 重啓服務器 service mysqld restart
9. 使用外網工具鏈接MySQL
1. 關閉防火牆或者開放端口(默認爲3306)
2. systemctl stop firewalld
3. MySQL 主從複製配置(一主一從)
1. 主服務器節點
1. 修改 MySQL 配置文件
2. vi /etc/my.cof 新增一下內容
3. server_id=177 ###服務器id,最好是ip最後一個,保證惟一
4. log-bin=mysql-bin ###開啓日誌文件
5. 重啓mysql服務 service mysqld restart
6. 驗證是否已經配置成功 show variables like '%server_id%';可以查詢對應配置文件中的server_id 說明已經配置成功
7. show master status; 可以看到同步的文件,和行數 說明已經配置成功。
2. 從服務器節點
1. 修改 MySQL 配置文件
2. server_id=178 ###從服務器server_id
3. log-bin=mysql-bin ###日誌文件同步方式
4. binlog_do_db=test ###同步數據庫
5. 重啓mysql服務 service mysqld restart
6. 驗證是否已經配置成功,show variables like '%server_id%'; 可以查詢對應配置文件中的server_id 說明已經配置成功
7. 從服務器同步主服務器配置 :
change master to master_host='主服務器ip',master_user='root',master_password='root',
master_log_file='主服務器查詢的binLog日誌文件',master_log_pos=行數; -- 主服務節點第7步查詢到的結果
8. 開始同步 start slave
9. 檢查從服務器複製功能狀態 SHOW SLAVE STATUS
10. 能夠經過 外網工具鏈接mysql 操做主服務器而後查看從服務器是否生效
11. Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解決辦法 :由於服務器克隆的時候交UUID產生了重複,
cd /var/lib/mysql
rm -rf auto.cnf
重啓服務器便可
service mysqld restart
4. MySQL 主從複製原理(一主一從)