Mariadb10.3.12单机&集群部署(含phpmyadmin)学习笔记

2019年2月27日

成都创新互联公司基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业眉山联通机房,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

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.1上mariadb10.3.12的依赖包版本都需要升级,所以直接从CentOS7.6上提取了最新的包,并配置离线yum源。

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

 

集群部署:三台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,如果有就卸载掉

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

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

1.2、配置离线yum源

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

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

由于服务器采用最小化安装,所以还需要安装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

 

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

 

创建本地yum源仓库

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

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

执行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

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

1.4、安装mariadb

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

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

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

 

1.5启动mariadb

[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl enable mariadb

[root@localhost ~]# systemctl status mariadb

 

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

1.6、MariaDB简单配置

[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完成,接下来测试登录

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

 

 

1.7、MariaDB登陆

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

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

 

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

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

 

1.8、开启错误日志

mysql>show variables like '%log_err%'

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

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

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

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

重启数据库后参数生效:

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

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

二、图形管理界面phpmyadmin部署

2.1、安装httpd、php和php-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 */后的高级参数全部开启

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

 

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

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

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

快速设置高级功能:

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

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

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

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

 

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

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

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

执行脚本

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

 

2.4.3、更新权限

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

点击编辑权限

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

 

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

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

 

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

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

 

全选后点击执行按钮

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

 

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

 

2.4.4、重启httpd服务

[root@localhost phpmyadmin]# systemctl restart httpd

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

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

 

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

 

 

三、集群安装

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的格式也有三种:STATEMENT,ROW,MIXED

① 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模式保存binlog,MySQL会根据执行的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 providerversion >= 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.40,MariaDB Galera Cluster 10.0.14和MariaDB 10.1.2之前的MariaDB版本。

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

 

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

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

 

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

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

 

以下为修改后的配置参数

[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

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

--这里建议将数据库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命令启动的集群

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

 

3.3、其他节点加入集群

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

 

3.4、查看集群状态

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

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


四、注意事项

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

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

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

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

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

 

 


网站名称:Mariadb10.3.12单机&集群部署(含phpmyadmin)学习笔记
网站路径:http://myzitong.com/article/goghge.html