千家信息网

Mariadb 10.3.12单机&集群部署(含phpmyadmin)学习笔记

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,2019年2月27日9:46目录环境说明:. 2一、单机部署. 21.1、查询系统是否自带mariadb,如果有就卸载掉. 21.2、配置离线yum源. 31.3、升级systemd-libs包. 4
千家信息网最后更新 2024年11月14日Mariadb 10.3.12单机&集群部署(含phpmyadmin)学习笔记

2019227

9:46

目录

环境说明:. 2

一、单机部署. 2

1.1、查询系统是否自带mariadb,如果有就卸载掉. 2

1.2、配置离线yum源. 3

1.3、升级systemd-libs包. 4

1.4、安装mariadb 4

1.5启动mariadb 5

1.6、MariaDB简单配置. 6

1.7、MariaDB登陆. 7

1.8、开启错误日志. 7

二、图形管理界面phpmyadmin部署. 10

2.1、安装httpd、php和php-mysql软件. 10

2.2、解压软件包. 10

2.3、生成配置文件. 10

2.4、开启高级功能. 10

2.4.1、编辑配置文件. 10

2.4.2、根据页面提示执行脚本. 11

2.4.3、更新权限. 13

2.4.4、重启httpd服务. 15

三、集群安装. 17

3.1、必须配置的变量参数. 17

3.2、启动集群命令:. 19

3.3、其他节点加入集群. 20

3.4、查看集群状态. 20

四、注意事项. 21

环境说明:

官方站点

https://mariadb.com/kb/zh-cn/

https://mariadb.org


官网学习链接:

https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/#installing-mariadb-galera-cluster


环境:VMware® Workstation 15 Pro

单机部署:CentOS7.1+Mariadb10.3.12+phpmyadmin4.0.10.20

说明:客户要求必须用CentOS7.1+Mariadb10.3.12的环境,CentOS 7.1mariadb10.3.12的依赖包版本都需要升级,所以直接从CentOS7.6上提取了最新的包,并配置离线yum源。

如果直接在CentOS7.6上安装,则不需要做离线yum源,直接挂载系统镜像做yum源就可以了。mariadbphpmyadmin可以从官网免费下载。

集群部署:三台CentOS7.1虚拟机+Mariadb10.3.12+phpmyadmin4.0.10.20

IP地址:

111.111.111.20

111.111.111.201

111.111.111.202

主机名:

hostnamectl set-hostname mariadb01

hostnamectl set-hostname mariadb02

hostnamectl set-hostname mariadb03

关闭防火墙&selinux

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

[root@localhost ~]# setenforce 0

一、单机部署

1.1、查询系统是否自带mariadb,如果有就卸载掉

Rpm -qa查询到有一个5.5.41版本的包,直接卸载

1.2、配置离线yum

将准备好的离线yum源包上传到服务器,并配置yum


由于服务器采用最小化安装,所以还需要安装createrepo命令

[root@localhost mariadb-10.3.12_yum_centos_offline]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm

[root@localhost mariadb-10.3.12_yum_centos_offline]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm

[root@localhost mariadb-10.3.12_yum_centos_offline]# rpm -ivh libxml2-2.9.1-5.el7_0.1.x86_64.rpm

[root@localhost mariadb-10.3.12_yum_centos_offline]# rpm -ivh libxml2-python-2.9.1-5.el7_0.1.x86_64.rpm

[root@localhost mariadb-10.3.12_yum_centos_offline]# rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm

创建本地yum源仓库


执行setup_repository之后会在/etc/yum.repos.d目录下生成一个mariadb.repo,但是还是需要我们自己配置一下,否则该目录下的其他repo文件会干扰yum离线源

1.3、升级systemd-libs

由于centos7.1自带的systemd-libs-208-20.el7.x86_64版本过低不支持Mariadb10.3.12版本,我们需要升级

[root@localhost ~]# yum install systemd-libs -y


1.4、安装mariadb

前面已经完成yum配置,这里直接安装

[root@localhost yum.repos.d]# yum install mariadb-server -y

1.5启动mariadb

[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl enable mariadb

[root@localhost ~]# systemctl status mariadb

1.6MariaDB简单配置

[root@localhost ~]# mysql_secure_installation

先是设置密码,会提示先输入密码

Enter current password for root (enter for none): <-初次运行直接回车

设置密码

Set root password? [Y/n] <- 是否设置root用户密码,输入y并回车或直接回车

New password: <- 设置root用户的密码

Re-enter new password: <- 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n] <- 是否删除匿名用户,Y,回车

Disallow root login remotely? [Y/n] <-是否禁止root远程登录,N,回车,

Remove test database and access to it? [Y/n] <- 是否删除test数据库,n,回车

Reload privilege tables now? [Y/n] <- 是否重新加载权限表,回车

初始化MariaDB完成,接下来测试登录

1.7MariaDB登陆

[root@localhost ~]# mysql -u root -p

默认安装路径:/var/lib/mysql

1.8、开启错误日志

mysql>show variables like '%log_err%'

可以看到没开启错误日志,我们可以选择开启,并指定路径,命令行修改会如下图报错,告诉我们是只读参数,那么只能修改server.cnf文件,然后重启数据库生效了。

重启数据库后参数生效:




二、图形管理界面phpmyadmin部署

2.1、安装httpdphpphp-mysql软件

[root@localhost ~]# yum install httpd php php-mysql -y

[root@localhost ~]# yum install php-mbstring -y

2.2、解压软件包

将下载好的软件解压到"/var/www/html"目录下

[root@localhost iso]# tar -zxvf phpMyAdmin-4.0.10.20-all-languages.tar.gz -C /var/www/html/

[root@localhost iso]# cd /var/www/html/

[root@localhost html]# mv phpMyAdmin-4.0.10.20-all-languages mariadb

这里把目录名称修改简单点,便于访问

2.3、生成配置文件

进入mariadb目录,将"config.sample.inc.php"文件复制为"config.inc.php"

[root@localhost mariadb]# cp config.sample.inc.php config.inc.php

2.4、开启高级功能

2.4.1、编辑配置文件

将下图中 /* Storage database and tables */后的高级参数全部开启

2.4.2、根据页面提示执行脚本

快速设置高级功能:

· 通过 examples/create_tables.sql 创建必需的数据表。

· 创建一个用户并授予其访问上一步操作中创建的数据表的权限。

· 在配置文件 (config.inc.php) 中启用高级功能,参见 config.sample.inc.php 中的范例。

· 请重新登录 phpMyAdmin 以加载新配置并使其生效。

来自 <http://111.111.111.200/mariadb/server_privileges.php>

脚本默认在mariadb安装路径下的examples目录内

执行脚本

2.4.3、更新权限

执行完脚本后,我们会发现多了一个phpmyadmin数据库,我们需要更新root用户对phpmyadmin数据库的权限

点击编辑权限

进入编辑页面后,在下面红框内选择phpmyadmin数据库

确认是phpmyadmin数据库后,全选所有权限

全选后点击执行按钮

2.4.4、重启httpd服务

[root@localhost phpmyadmin]# systemctl restart httpd

访问管理页面,这里的root账户密码就是前面设置的Maridb的账户密码 --必须重新输入账户密码登陆一次页面才能开启高级功能!


三、集群安装

3.1、必须配置的变量参数

wsrep_provider -- wsrep库的位置,默认:/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address --集群IP配置,格式:"gcomm//:,,"

binlog_format=ROW --mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENTROWMIXED

STATEMENT模式(SBR

每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)

ROW模式(RBR

不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。

③ MIXED模式(MBR

以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlogMySQL会根据执行的SQL语句选择日志保存方式。

default_storage_engine=InnoDB --默认存储引擎。服务器启动时必须启用默认存储引擎,否则服务器将无法启动。

innodb_autoinc_lock_mode=2 --控制着在向有auto_increment 列的表插入数据时,相关锁的行为;所以在binlog_format不是statement的情况下最好是innodb_autoinc_lock_mode=2 这样可能知道更好的性能

innodb_doublewrite=1 -- This is the default value, but it should not be changed when using Galera provider version >= 2.0.

query_cache_size=0 -- Only mandatory for MariaDB versions prior to MariaDB Galera Cluster 5.5.40, MariaDB Galera Cluster 10.0.14, and MariaDB 10.1.2. 仅适用于MariaDB Galera Cluster 5.5.40MariaDB Galera Cluster 10.0.14MariaDB 10.1.2之前的MariaDB版本。

wsrep_on=ON -- Enable wsrep replication (starting 10.1.1)

下图为mariadb10.3.12版本的默认变量参数

想要启动集群,必须先修改这些参数,修改之前先备份一下配置文件

以下为修改后的配置参数

[galera]

# Mandatory settings

wsrep_on=ON

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address="gcomm://111.111.111.200,111.111.111.201,111.111.111.202"

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

#

# Allow server to accept connections on all interfaces.

#

#bind-address=0.0.0.0

#

# Optional setting

#wsrep_slave_threads=1

#innodb_flush_log_at_trx_commit=0

# this is only for embedded server

--这里建议将数据库log_err日志开启,该参数属于只读参数,只能修改配置文件重启数据库生效, 所以在安装时就指定,以便于查看日志排错。在server.cnf文件中,[mysql]下加入该参数即可

log_error=/var/lib/mysql/mariadb01.err

3.2、启动集群命令:

mysqld --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql --wsrep-new-cluster --wsrep-cluster-address="gcomm://"

systemctl start mariadb --wsrep-new-cluster --wsrep-cluster-address="gcomm//:111.111.111.200,111.111.111.201,111.111.111.202"

Systemd and Bootstrapping--官网命令:

On operating systems that use systemd, a node can be bootstrapped in the following way:

$ galera_new_cluster

本次测试使用的是galear_new_cluster命令启动的集群

3.3、其他节点加入集群

全部按照1节点的server.cnf文件配置,然后systemctl restart mariadb就可以了

3.4、查看集群状态

使用show status like 'wsrep_cluster_size'命令查看集群状态, value值为3,则证明集群有3个节点


四、注意事项

1关闭 selinux否则会无法连入集群;如果启用selinux,修改数据库目录后,启动数据库就会报innodb无法初始化。

2关闭防火墙!或者自行开放相关端口

3各个节点需用同一个版本的MariaDB否则会出各种问题!

4如果是已有数据库,包含了集群外的数据,千万不要作为后继节点连入集群,否则原有数据会被集群数据所清除!

5本次测试旨在快速部署MariaDB,所有参数均未做调优,仅满足安装需求!实际生产环境需要自行摸索优化相关参数!


0