mysqlcluster3节点_搭建3节点的基于galeraclusterformysql。
。。
搭建3节点的基于galera cluster for mysql的mysql分布式数据库集
⼀运⾏环境:
1虚拟机系统版本
Ubuntu16.04版本(系统登录:root(ubuntu1))
2 数据库版本
mysql5.7(⽤户名root 密码root)
⼆ 安装环境:
⾸先,不论是在云服务器、物理机还是虚拟机上,⾄少需要3台主机(我们将这三台主机称为“Nodes”),对于每⼀个”Node”,硬件最低配置要求为:
- 1GHz单核CPU
- 512M的内存
- 100Mbps的⽹络连接
- 三台主机IP为:
- Node1: 192.168.1.210(主节点)
- Node2: 192.168.1.218(从节点1)
- Node3: 192.168.1.220(从节点2)
(1)禁⽤SELinux的mysqld
所有节点执⾏
如果你启⽤了SELinux,它可能会阻⽌mysqld从执⾏所需的操作。你必须禁⽤SELinux mysqld。禁⽤SELinux mysql运⾏以下命令
apt install policycoreutils -y && semanage permissive -a mysqld_t
(2)防⽕墙配置:
直接关闭所有节点的防⽕墙
(3)禁⽤Ubuntu的apparmor:
所有节点执⾏
apparmor主要是Ubuntu系统中对mysql访问权限的控制,我们必须禁⽤AppArmor,以便配置mysql的mysqld能够运⾏外部程序。禁⽤apparmor:
sudo ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sqld
apt install apparmor-utils -y
sudo aa-complain /etc/apparmor.d/sqld
service apparmor restart
注:如果不禁⽤,则在登录mysql时会出现如下错误:
apparmor="DENIED" operation="open" ........
对应解决⽅案:
直接修改apparmor配置⽂件
nano /etc/apparmor.d/sqld
在配置⽂件中的以下⾏增加”flags=(complain)”,如下:
/usr/sbin/mysqld flags=(complain) {
#include
#include
#include
#include
........
........
}
三 开始安装
(0)安装mysql5.7
所有节点执⾏
安装mysql5.7的步骤如下:
顺序执⾏:
sudo apt update ⾸先更新⼀下软件列表
sudo apt install mysql-client-core-5.7 -y 物理端的核⼼
sudo apt install mysql-client-5.7 -y 客户端的组件
sudo apt install mysql-server-5.7 -y 服务端,安装的过程会提⽰输⼊root⽤户的数据库密码
sudo apt install mysql-workbench -y 这是MySQL⾃⼰的可视化⼯具,⾄此已安装完毕,打开⼯具可直接登录安装完成后查看状态: service mysql status
登录:mysql -u root -h localhost -p #输⼊密码
查看版本:mysql> select version();
(1)安装对应依赖
所有节点执⾏
apt-get install python-software-properties -y && apt-get install software-properties-common -y
(2)添加GunPG key
所有节点执⾏
apt-key adv --keyserver keyserver.ubuntu --recv BC19DDBA
(3)配置Ubuntu下galera源
所有节点执⾏
创建galera.list⽂件:
touch /etc/apt/sources.list.d/galera.list
nano /etc/apt/sources.list.d/galera.list
在galera.list中添加内容:
#Codership Repository (Galera Cluster for MySQL)
链接中的“xenial”为你所⽤的ubuntu系统的版本号,如果不清楚⾃⼰的Ubuntu版本号,可通过命令lsb_release -a来查看。
(4)继续配置源
所有节点执⾏
touch /etc/apt/preferences.d/galera.pref
nano /etc/apt/preferences.d/galera.pref
在galera.pref⽂件中添加内容:
Package: *
Pin: origin releases.galeracluster
Pin-Priority: 1001
(5)更新源
所有节点执⾏
sudo apt-get update
(6)安装mysql和Galera
⼀旦在所有服务器上更新了存储库,就可以在三台服务器上运⾏以下命令安装MySQL5.7的修补程序与Galera:
sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.7 -y
报错:
解决:这是Ubuntu⾃⾝apt安装软件时的软件依赖问题。
按照错误提⽰执⾏: sudo apt-get -f install -y
⼜报错:
接着执⾏:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/mysql-wsrep-common-5.7_5.7.29-25.21-1ubuntu16.04_amd64.deb
sudo apt-get -f install -y
sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.7 -y
sudo apt autoremove -y
此时再执⾏”sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.7 -y”时就不会报错了。
(7)安装完成之后,在每⼀个节点上启动Mysql:
所有节点执⾏
service mysql start
报错:
解决:
原因可能是之前使⽤apt-get 安装过mysql,服务被标记过,解除后即可启动:
systemctl unmask mysql.service
(8)验证节点之间是否能互相ping通:
主节点135上:
mysql配置与安装过程Ping 192.168.93.132
Ping 192.168.93.134
从节点132上:
Ping 192.168.93.135
Ping 192.168.93.134
从节点134上:
Ping 192.168.93.135
Ping 192.168.93.132
能ping同则表⽰三节点之间能互相通信。
(9)分别在三个节点上修改mysql的配置⽂件/etc/mysql/myf
主节点210上:
!includedir /etc/mysql/conf.d/
!includedir /etc/f.d/
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"
wsrep_cluster_name="galeracluster2"
wsrep_cluster_address="gcomm://"
wsrep_sst_method=rsync
wsrep_sst_auth=root:root
wsrep_node_address="192.168.1.210"
wsrep_node_name=node210
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREAT
其中:
wsrep_sst_auth 数据库的root⽤户的⽤户名密码
从节点218上:
!includedir /etc/mysql/conf.d/
!includedir /etc/f.d/
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"
wsrep_cluster_name="galeracluster2"
wsrep_cluster_address="gcomm://192.168.1.210"
wsrep_sst_method=rsync
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论