MYSQL之一主多從搭建方案
阿新 • • 發佈:2018-11-07
- 原理
- 方案
- 環境
虛擬機器兩臺:192.168.153.11/12
系統:Centos6.7x64位(磁力下載)
資料版本:mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz(可以通過迅雷或者shell命令wget在linux內下載) - 步驟
# 安裝前必須刪除原來的安裝,需要檢查 以下檔案是否存在 ,如果存在則要刪除
# /etc/my.cnf
# /etc/init.d/mysqld
# 新增mysql依賴庫
shell> yum search libaio # search for info
shell> yum install libaio # install library
# 建立mysql 與使用者組,-s /bin/false 表示該使用者不能登入
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
# 建立安裝目錄(後面會用到,隨意命名即可)
shell> mkdir -p package
shell> cd package
shell> pwd
/package
# 解壓安裝包至當前目錄並給定軟連線
shell> tar zxvf mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz
shell> ln -s mysql-5.5.60-linux-glibc2.12-x86_64 mysql
shell> cd mysql
# 為 mysql 使用者新增許可權
shell> chown -R mysql ./
shell> chgrp -R mysql ./
# 建立data目錄並新增許可權
shell> mkdir -p /data/mysql
shell> chown -R mysql:mysql /data/mysql
# 拷貝配置檔案
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cp support-files/mysql.server /etc/init.d/mysqll
# 修改配置
shell> vi /etc/my.cnf
# 新增或修改以下內容即可
[mysqld]
basedir=/package/mysql #mysql解壓目錄
datadir=/data/mysql #mysql資料檔案目錄
character-set-server=utf8 #字符集
# 初始化mysql資料庫
shell> ./scripts/mysql_install_db --user=mysql --basedir=/package/mysql --datadir=/data/mysql
# 新增環境變數(檔案最後一行,新增一行新增即可)
shell> vi /etc/profile
PATH=/home/cbt/svr/mysql/bin:$PATH
export PATH
# 環境變數立即生效
shell> source /etc/profile
# 啟動資料庫
shell> service mysql start
# 開機啟動
shell> chkconfig mysqld on
# 初始化mysql的一些設定
shell> mysql_secure_installation
#回車
Enter current password for root (enter for none):
#y,設定mysql的root密碼
Set root password?[Y/n] y
#以下都yes
Remove anonymous users?[Y/n] y
Disallow root login remotely?[Y/n] y
Remove test database and access to it?[Y/n] y
Reload privilege tables now?[Y/n] y
ThanksforusingMySQL!
# 允許遠端登陸
mysql>use mysql;
mysql>select host,user,password from user;
mysql>update user set password=password('123456') where user='root';
mysql>update user set host='%' where user='root' and host='localhost';
mysql>flush privileges;
# 安裝時的一些錯誤
-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 沒有那個檔案或目錄
解決: yum -y install perl perl-devel
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決:yum -y install libaio-devel
#################### 一主多從配置 ####################
master my.cnf 配置-----
shell> vi /etc/my.cnf
# binlog 格式
binlog-format=ROW
log-bin=mysql-master-bin
# slave更新時是否記錄到日誌中;
log-slave-updates=true
# 開啟半同步
rpl_semi_sync_master_enabled=ON
# 需要同步的二進位制資料庫名;
binlog-do-db=health #需要同步的資料庫
# 不同步的二進位制資料庫名,如果不設定可以將其註釋掉;
binlog-ignore-db=information_schema #不需要同步的資料庫
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
# 儲存並重啟mysql服務
shell> service mysql restart
# 登陸資料庫
shell> mysql -uroot -p123456
# 建立使用者用於主從同步的資料庫
mysql>grant replication slave,super,reload on *.* to [email protected]192.168.153.12 identified by '123456';
# 檢視主節點狀態
mysql>show master status
# 在主庫上檢視已連線的slave主機
mysql>show slave hosts;
# 檢視所有binlog日誌
mysql>show binary logs;
# 檢視所有binlog 事件
mysql>show binlog events in 'mysql-bin.000003';
# slave my.cnf 配置-----
server-id = 2
log-bin=mysql-slave-bin
binlog-do-db=health #需要同步的資料庫
binlog-ignore-db=information_schema #不需要需要同步的資料庫
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
# 儲存並重啟slave節點mysql服務
shell> service mysql restart
# 登陸slave伺服器mysql資料庫
shell> mysql -uroot -p123456
# slave節點修改master配置
mysql>change master to master_host='192.168.153.11', master_user='slave1', master_password='123456';
# Slave 相關操作
# 啟動暫停slave
mysql>start slave;
mysql>stop slave;
# 檢視 slave 狀態
mysql>show slave status \G;