mysql-集群-二进制部署

所有主机上操作
一、环境清理
yum erase $(rpm -qa | grep mysql) -y ; yum erase $(rpm -qa | grep mariadb) -y
##安装epel拓展源
yum install epel-release -y

然后开始搞信任进行相互传输
ssh root@192.168.171.18

##二进制安装包上传到这里
mkdir /soft
cd /soft

含有wsrep补丁mysql的二进制包下载地址
http://releases.galeracluster.com/mysql-wsrep-5.7/binary/mysql-wsrep-5.7.43-25.35-linux-x86_64.tar.gz

mysql-wsrep-相关包下载地址
http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/

galera下载地址
http://releases.galeracluster.com/galera-3/centos/7/x86_64/
要下载的文件列表
galera-3-25.3.37-1.el7.x86_64.rpm

同步安装包至其他主机
rsync -avz /soft root@192.168.241.25:/
rsync -avz /soft root@192.168.241.26:/

在全部主机上操作,进行二进制包安装(含有wsrep补丁)
开始部署
cd /soft
INSTALLDIR=‘/usr/local/mysql’
INIT_PASSWD_MODE=‘initialize-insecure’

##解包建账号授权
tar xzvf mysql-wsrep-5.7.43-25.35-linux-x86_64.tar.gz
mv mysql-wsrep-5.7.43-25.35-linux-x86_64 ${INSTALLDIR}
id mysql &>/dev/null || useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql ${INSTALLDIR}

安装相关包
yum install epel-release
yum install galera lsof -y
rpm -qa|egrep ‘galera|rsync|lsof’

#检查一下是否有mysql
cd /usr/local

开始配置集群
在第一台主机上操作,创建新集群

##查看一下路径 find / -name libgalera_smm.so
跟wsrep_provider路径是否一致
/usr/lib64/galera/libgalera_smm.so

cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://’
wsrep_node_name=‘galera1’
wsrep_node_address=‘192.168.171.17’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

第二台主机
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=2
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.171.17,192.168.171.18,192.168.171.19’
wsrep_node_name=‘galera2’
wsrep_node_address=‘192.168.171.18’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

第三台主机
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=3
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.171.17,192.168.171.18,192.168.171.19’
wsrep_node_name=‘galera3’
wsrep_node_address=‘192.168.171.19’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

全部主机上操作
初始化mysql
INSTALLDIR=‘/usr/local/mysql’
INIT_PASSWD_MODE=‘initialize-insecure’
I N S T A L L D I R / b i n / m y s q l d − − {INSTALLDIR}/bin/mysqld -- INSTALLDIR/bin/mysqld{INIT_PASSWD_MODE}
–basedir= I N S T A L L D I R   − − d a t a d i r = {INSTALLDIR} \ --datadir= INSTALLDIR datadir={INSTALLDIR}/data
–user=mysql

全部主机上操作配置开机自启动服务
cat >/usr/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=${INSTALLDIR}/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

##开始配置环境变量 加载生效
cat >/etc/profile.d/mysql.sh<<EOF
export PATH=$PATH:${INSTALLDIR}/bin
EOF

##全部主机上操作然后服务加载启动
systemctl daemon-reload
systemctl enable mysqld.service
systemctl start mysqld

##检查端口是否是4567 3306
ss -ntpl
手工启动mysql方式
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &

查看日志/usr/local/mysql/mysql.log是否有错误输出

查看工作端口
ss -ntpl | grep mysqld
LISTEN 0 128 :4567 : users:((“mysqld”,pid=5780,fd=12))
LISTEN 0 128 [::]:3306 [::]:
users:((“mysqld”,pid=5780,fd=29))

##添加同步账号
设置root口令以后会同步至其他主机
#source /etc/profile
#mysql -u root -p
mysql>set password=‘Qianfeng123!’;
mysql>grant all on . to ‘syncuser’@‘%’ identified by ‘QianFeng@123’;
mysql>flush privileges;
mysql>exit

在其他主机上查看同步用户的生成情况
#mysql -u root -p
#show grants for syncuser;

查看工作端口
ss -ntpl | grep mysqld
LISTEN 0 128 :4567 : users:((“mysqld”,pid=5780,fd=12))
LISTEN 0 128 [::]:3306 [::]:
users:((“mysqld”,pid=5780,fd=29))

如果报错,只有4567端口则杀死该进程并将galera.cache、grastate.dat**两个文件删除
再将galera1中的/etc/my.cnf配置文件中的wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://’
ps aux | grep mysqld | grep -v grep | awk ‘{print $2}’ | xargs kill
rm -f /usr/local/mysql/data/{galera.cache,grastate.dat}
systemctl start mysqld

#所有节点查看集群地址
mysql> SHOW VARIABLES LIKE ‘wsrep_cluster_address’;

#所有节点查看Galera集群状态,观察wsrep_cluster_size、wsrep_incoming_addresses、wsrep_ready是否都一致
mysql> show status like ‘wsrep%’;

群集创建成功以后,最后修改第一台主机的my.cnf
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
default-storage-engine = innodb
innodb_large_prefix=on
innodb_file_per_table = on
innodb_file_per_table
max_connections = 10000
collation-server = utf8_general_ci
character_set_server=utf8
user=mysql
log-error=/usr/local/mysql/mysql.log
##galera_conf
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://192.168.241.24,192.168.241.25,192.168.241.26’
wsrep_node_name=‘galera1’
wsrep_node_address=‘192.168.241.24’
wsrep_sst_auth=syncuser:‘QianFeng@123’
wsrep_sst_method=rsync

[client]
port = 3306
socket =/usr/local/mysql/data/mysql.sock
default-character-set = utf8
EOF

systemctl restart mysqld

ss- ntpl

当所有节点的mysqld都停止后或者服务器断电了需要重启galera集群,想要重启集群:

  • 需要先把开机自启的myqld停止掉,保证当前系统没有mysqld进程,服务器重启后会有mysqld进程,有4567端口,但是没有3306端口,因为开机自启的mysqld启动不成功,杀死4567端口对应的进程
    ps aux | grep mysqld | grep -v grep | awk ‘{print $2}’ | xargs kill
  • 再将galera.cache、grastate.dat**两个文件删除
    rm -f /usr/local/mysql/data/{galera.cache,grastate.dat}
  • 再将galera1中的/etc/my.cnf配置文件中的`wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://’
  • 依次启动galera1、galera2、galera3的mysqld服务即可使集群恢复正常
  • 最后所有节点的galera服务都正常后,再将`wsrep_cluster_address改成wsrep_cluster_address=‘gcomm://192.168.241.23,192.168.241.24,192.168.241.25’,最后重启mysqld

相关推荐

  1. mysql--二进制部署

    2024-06-05 20:36:06       22 阅读
  2. 时序数据库m3db二进制部署

    2024-06-05 20:36:06       45 阅读
  3. mysql mgr多主部署

    2024-06-05 20:36:06       55 阅读
  4. mysql8 MGR部署

    2024-06-05 20:36:06       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-05 20:36:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-05 20:36:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-05 20:36:06       82 阅读
  4. Python语言-面向对象

    2024-06-05 20:36:06       91 阅读

热门阅读

  1. 45、Flink 的 Process Function 详解

    2024-06-05 20:36:06       24 阅读
  2. SpringBoot历史版本信息

    2024-06-05 20:36:06       25 阅读
  3. 【实用技巧】Unity的Text组件实用技巧

    2024-06-05 20:36:06       23 阅读
  4. GPT-4o:人工智能新纪元的启航者

    2024-06-05 20:36:06       26 阅读
  5. 如何评价GPT-4o?(要点精简)

    2024-06-05 20:36:06       25 阅读
  6. 排序---快速排序

    2024-06-05 20:36:06       29 阅读
  7. Python没什么?深度解析Python的无限可能与挑战

    2024-06-05 20:36:06       25 阅读
  8. React.forwardRef 使用

    2024-06-05 20:36:06       23 阅读
  9. h5相机功能

    2024-06-05 20:36:06       30 阅读