我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

2019年2月27日

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、编辑配置文件

将下图中 后的高级参数全部开启

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//:<node1 name or ip>,<node2 name or ip2>,<node3 name or ip>"

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模式保存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 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版本的默认变量参数

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,所有参数均未做调优,仅满足安装需求!实际生产环境需要自行摸索优化相关参数!

 

 


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录