(注:以下服務皆是在虛擬機上配置)
架構:
主資料庫服務器: master11(192.168.4.11)
從資料庫服務器: slave22(192.168.4.22)
讀寫分離服務器: maxscale77(192.168.4.77)
一、資料庫的配置
1.先給服務器添加兩塊10G的磁盤(vdb和vdc),并使用此磁盤創建邏輯卷(兩臺資料庫服務器都要配置) //主要是考慮到后期資料庫的資料量會逐漸增加,為了使資料庫實作資料庫的可靠性而使用邏輯卷進行存盤資料
1.1 使用fdisk命令對磁盤進行磁區,并且使用fdisk中的t命令把系統型別修改為8e //邏輯卷到的標準系統型別為8e
1.2 創建邏輯卷:
1.2.2 安裝能夠生成創建邏輯卷命令的lvm2軟體:
# yum -y install lvm#21.2.3 創建物理卷
pvcreate /dev/vdb /dev/vdc
1.2.4 創建卷組
# vgcreate vg0 /dev/vdb /dev/vdc
#vgdisplay
1.2.5 創建邏輯卷
#lvcreate -n lv0 -L 19.99G vg0y
#lvdispla
1.2.6 將邏輯卷格式化成xfs格式
# mkfs.xfs /dev/vg0/lv0
2.安裝資料庫并且實作邏輯卷掛載(兩臺資料庫服務器都有配置)
2.1資料庫安裝
2.1.1 解壓并安裝tar 包 mysql-5.7.17.tar
# tar xf mysql-5.7.17.ta
r#yum -y install mysql-community*.rpm //掛載后在啟動資料庫服務
2.1.2 掛載邏輯卷到資料庫目錄下
# vim /etc/fstab
/dev/vg0/lv0 /var/lib/mysql/ xfs defaults 0 0
:wq
# mount -a
# df -hT
2.1.3 啟動資料庫服務
# systemctl start mysqld //掛載后,再啟動資料庫,才能讓資料庫初始化時的所有資料都生成在邏輯卷內
# netstat -ntulp | grep 3306 //查看資料庫服務是否啟動,資料庫默認埠為3306
# grep password /var/log/mysqld.log //MySQL資料庫初始化后默認生成root用戶及隨機密碼,存盤在/var/log/mysqld.log 中
# mysql -uroot -p'grep出來的初始密碼'
>alter user user() identified by 'qqq123...A'; //MySQL資料庫默認首次登錄后需要修改密碼才能使用
3. 配置主從資料庫master11
3.1 主資料庫的配置
# vim /etc/my.cnf
[mysqld]
server_id=11 //指定server_id
log-bin=master11 //開啟binlog日志,并指定檔案名為master11
:wq
# systemctl restart mysqld //修改組態檔后一般都需要重啟服務
# mysql -uroot -pqqq123...A
> show master status; //查看binlog日志是否開啟
>grant replication slave on *.* to repluser@'%' identified by 'qqq123...A'; //授權進行主從同步的用戶,這里要注意的是授權的權限是replication slave
3.2 從資料庫配置slave22
# vim /etc/my.cnf
server_id=22 //從庫需要指定server_id,不能與主庫沖突
:wq
# systemctl restart mysqld
# mysql -uroot -pqqq123...A
> change master to
-> master_host='192.168.4.11',
-> master_user='repluser',
-> master_password='qqq123...A',
-> master_file_log='master11.000001',
-> master_log_pos=1 54; //指定本庫的主庫資訊
> start slave; //開啟從庫模式
> show slave status\G; //查看從庫狀態,Slave_IO_Running 和 Slave_SQL_Running 的值為Yes則為啟動成功
二.讀寫分離服務器配置
1.在讀寫分離服務器maxscale77上安裝提供讀寫分離服務的maxscale-2.1.2-1.rhel.7.x86.rpm
# rpm -ivh maxscale-2.1.2-1.rhel.7.x86.rpm
2. 修改組態檔指定服務器,監控用戶等
# vim /etc/maxscale.cnf
:set nu
10 threads = auto //自動開啟執行緒
18 [server1] //有幾個server就有機臺服務器
19 type=server
20 address=192.168.4.11 //指定資料庫的IP地址
21 port=3306 //資料庫服務器的埠
22 protocol=MySqlBackend
23
24
25 [server2]
26 type=server
27 address=192.168.4.22
28 port=3306
29 protocol=MySqlBackend
36 [MySQL Monitor]
...
servers=server1,server2
user=maxscalemon //指定能夠登錄資料庫服務器的監控資料庫用戶,監控資料庫的主從,資料庫服務是否啟動等
passwd=qqq123...A //此用戶的登錄密碼
...
53 [Read_Only Service] //注釋整個模塊,不定義只讀模塊,實作自動分離
64 [Read-Write Service]
...
servers=server1,server2
user=maxscaleroute //指定路由用戶,主要是用于連接maxscale資料庫 和 MySQL資料庫,查看登錄資料庫服務的用戶是否授權
passwd=qqq123...A
...
[Read-Only Listener] //整個模塊注釋掉,不監聽只讀埠
[MaxAdmin Listener]
...
port=4016 //指定maxscale管理服務的埠為4016
:wq
3.在資料庫服務器上授權監控用戶(主服務器上授權,從服務器上查看)
3.1 主服務器授權 (master11)
# mysql -uroot -pqqq123...A
> grant replication slave, replication client on *.* to maxscalemon@'%' identified by 'qqq123...A'; //這里值得注意的是授權的權限是replication slave 和 replication client, 表示查看主庫從庫的狀態及主從服務的進行
> grant select on mysql.* to maxscaleroute@'%' identified by 'qqq123...A'; //授權路由用戶對mysql庫下的所有表有查詢權限,主要是為了查詢登錄用戶的用戶資訊
3.2從服務器查看(slave22)
# mysql -uroot -pqqq123...A
> select user,host from mysql.user;
4. 啟動讀寫分離服務(maxscale77)
# maxscale -f /etc/maxscale.cnf //啟動maxscale服務
# ps -C maxscale //查看服務行程
# netstat -ntulp | grep maxscale //查看服務埠號,需要有兩個埠才算成功(4006為客戶端連接資料庫埠,4016為maxscale管理服務埠)
5. 測驗配置(maxscale77)
# maxadmin -uadmin -pmariadb -P4016 //登錄maxscale管理帳號,查看主從庫資訊,及時否啟用
> list servers
6. 資料庫服務器授權普通用戶登錄驗證(master11)
# mysql -uroot -pqqq123...A
> create database game;
> grant all on game.* to yaya9@'%' identified by 'qqq123...A'; //授權用戶yaya9對game庫下的所有表有所有權限
7. 客戶端登錄驗證
# mysql -h192.168.4.77 -P4006 -uyaya9 -pqqq123...A //用戶yaya9登錄讀寫分離服務器,對資料庫進行操作,需要注意的是埠和IP
y
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/32413.html
標籤:服務器
上一篇:怎么做啊,help
