mysql免安裝部署,主從配置和Atlas資料庫中介軟體的使用
mysql免編譯安裝包下載地址:https://dev.mysql.com/downloads/mysql/
linux 選擇免安裝版本
Atlas 下載地址:https://github.com/Qihoo360/Atlas/releases 根據伺服器版本選擇,本文件使用rpm版本,因為伺服器使用redhat7,所有選擇rpm版本,更多伺服器和版本對應的資訊,下載地址存在文件,請自行檢視
Ip地址已實際環境為準,這裡主要為了文件描述時標註清晰
資料庫中介軟體伺服器:Atlas部署伺服器(因為專案原因使用三方外掛不能設定埠,所以中介軟體如果和主庫部署在同一伺服器時,設定中介軟體埠為3306)
Ip:192.168.109.252
主庫:mysql主庫(如果和中介軟體部署在同一伺服器,需要修改埠不能使用3306埠)
Ip:192.168.109.253
從庫:mysql 從庫
Ip:192.168.109.254
1 .Mysql免編譯安裝包部署
1.1 建立存放壓縮包資料夾
1.2 上傳安裝包至壓縮包存放資料夾
1.3 解壓縮包至/user/local/mysql
1.4 安裝mysql所需拓展
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison net-tools libaio
1.5 進入mysql資料夾
cd /usr/local/mysql
1.6 建立資料儲存資料夾 data
mkdir data
1.7 建立mysql使用者組和mysql使用者,-s /bin/false 表示使用者不能用於登入
groupadd mysql (新增mysql使用者組命令)
useradd -r -g mysql -s /bin/false mysql
1.8 為mysql使用者新增許可權
chown -R mysql:mysql /usr/local/mysql
1.9 拷貝提供的部署中的my.cnf到/etc下,編輯my.cnf 遮蔽sql_mode一行
1.10 初始化資料庫 初始化完成會有一個密碼,儲存一下
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
1.11 配置mysql服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 新增到系統服務
chkconfig mysqld on # 開機啟動
1.12啟動mysql
service mysqld start //啟動mysql服務
service mysqld stop //停止mysql服務
service mysqld restart //重啟mysql服務
1.13 配置mysql環境變數
vi /etc/profile
新增 export PATH=/usr/local/mysql/bin:$PATH 儲存
執行 source /etc/profile 在沒有source命令情況下執行. /etc/profile讓profile檔案立即生效
1.14 登入mysql 修改臨時管理員密碼
mysql -h 127.0.0.1 -u root –p
執行如下語句,修改本地登入密碼為123456
alter
user
'root'
@
'localhost'
identified
by
'123456'
;
設定
mysql
允許遠端登入
Use mysql;
Update user set host=’%’ where host=’localhost’ and user=’root’;
執行 flush privileges;命令立即生效
1.15 新增3306埠為開放埠
7以前版本
1、修改vim/etc/sysconfig/iptables檔案,增加如下一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 要開啟的埠 -j ACCEPT
2、重啟 iptables
命令: service
iptables restart
查詢埠是否已開啟:
netstat -an | grep 埠 或 netstat -tunlp |grep 埠
方法二:
1、# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
2、# /etc/init.d/iptables restart
3、# /etc/rc.d/init.d/iptables save
7以後使用
檢視埠是否開放
firewall-cmd --query-port=3306/tcp
新增埠
firewall-cmd --add-port=3306/tcp --permanent
主庫從庫部署都以上面為準
2 mysql資料庫主從配置
2.1 192.168.109.253(主庫配置)
配置項必須新增[mysqld]之後
##########################
## log bin
###########################
server-id = 100 #必須唯一
log_bin = mysql-bin #開啟及設定二進位制日誌檔名稱
binlog_format = MIXED
sync_binlog = 1
expire_logs_days =7 #二進位制日誌自動刪除/過期的天數。預設值為0,表示不自動刪除
#binlog_cache_size = 128m
#max_binlog_cache_size = 512m
#max_binlog_size = 256M
binlog-do-db = sync #要同步的資料庫
binlog-ignore-db = mysql #不需要同步的資料庫
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
重啟mysql服務,service mysqld restart
登入mysql mysql -uroot -p 回車 輸入密碼 回車
執行下面語句(設定從伺服器服務許可權,方便從伺服器使用者讀取賦值主伺服器內容)
grant replication slave,replication on *.* to ‘從庫賬號’@’從庫ip’ identified by ‘從庫登陸密碼’;
執行flush privileges; 使命令立即生效
執行show master status;檢視主伺服器的狀態
記住此時的File和Position,配置從伺服器的時候會用上
2.2 192.168.109.254(從庫配置)
配置從伺服器/etc/my.cnf
##########
##bin-log
##########
server-id = 110
log_bin = mysql-bin
replicate-do-db =sync #只複製某個庫
replicate-ignore-db=mysql #不復制某個庫
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
重啟mysql服務,service mysqld restart
登入mysql mysql -uroot -p 回車 輸入密碼 回車
設定主庫資訊
執行 stop slave; 停止同步
執行 CHANGE MASTER TO MASTER_HOST=’主庫ip’,MASTER_PORT=’主庫埠’,MASTER_USER=’主庫mysql使用者’,MASTER_PASSWORD=’主庫mysql密碼’,MASTER_LOG_FILE=’上面獲取的FIEL’,MASTER_LOG_POS=’上面獲取的position’;
MASTER_LOG_FILE 從主庫的該log_bin檔案開始讀取同步資訊,主庫show master status返回結果
MASTER_LOG_POS 從檔案中指定位置開始讀取,主庫show master status返回結果
執行 start slave;開始同步
執行 show slave status;檢視同步狀態
只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,則同步是正常的。
如果是No或者Connecting都不行,可檢視mysql-error.log,以排查問題。
3 配置Atlas讀寫分離
上傳atlas安裝包Atlas-2.2.1.el6.x86_64.rpm到伺服器
執行 rpm -i Atlas-2.2.1.el6.x86_64.rpm 安裝altas,安裝後的路徑為/usr/local/mysql-proxy
修改配置檔案 vim /usr/local/mysql-proxy/conf/test.cnf
配置檔案中引數都有描述,配置以上述配置檔案中為準
開啟埠如上面配置mysql的開啟埠,開啟配置的proxy-address所有配置的埠
Atlas啟動,停止,重啟命令
/usr/local/mysql-proxy/bin/mysql-proxyd test start 啟動
/usr/local/mysql-proxy/bin/mysql-proxyd test stop 停止
/usr/local/mysql-proxy/bin/mysql-proxyd test restart 重啟
然後在專案配置,使用Atlas所在伺服器所在ip,埠使用Atlas中proxy-address配置埠,使用者使用主庫使用者和密碼,主庫和從庫使用者密碼需要一致