CentOS7安装通用二进制格式MariaDB 10.2.8

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

什么是MariaDB

MariaDB 是MySql的一个分支。 了解一下数据库的发展历史,我们知道,MySql数据库不但二次易主,而且还被打入了冷宫(先被sun收购,然后sun被Oracle收购)。因为Oracle有自己的数据库,同时只有Oracle自己的员工可以进行MySql的研发,所以MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。
MariaDB不仅仅是Mysql的一个替代品,它的主要目的是创新和提高Mysql的技术。
MariaDB是基于MySql原来技术的基础上,进行的新的开发发展,同时兼容绝大多数MySql原有技术,对于开发者来说,几乎感受不到任何的不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
LAMP架构盛极一时,这离不开MySQL的免费与易用,但是在Oracle收购了Sun之后,很多公司开始担忧MySQL的开源前景,而最近Oracle进一步闭源的举措更是让人难以安心,众多互联网公司纷纷开始寻求MySQL的替代方案。  MariaDB继续保持开源的理念,源源不断的发布新版本,为互联网技术提供了无限的可能,同时很多互联网巨头已经迁移并使用了MariaDB,所以我们接下来就开始学习MariaDB啦。

开始安装MariaDB

一 准备实验环境

  • 首先去MariaDB的官方网站上下载MariaDB的二进制安装包,下载地址 https://downloads.mariadb.org/

  • 准备一个没有安装过MySql的干净的系统。

二 准备用户和数据目录

首先准备数据库能够所需要使用的用户和用户组。

# 添加名为mysql的用户组,并指定gid 为306
# -r 为创建系统用户组
groupadd -r -g 306 mysql

# -r  表示创建系统用户  
# -g 表示执行所属组的gid 为306
# -u  表示指定uid 为306
# -m 创建家目录
# -d 指定家目录的路径  
# mysql  想要添加的用户名
useradd -r -g 306 -u 306 –m –d /app/data mysql

指定数据目录,数据目录的作用就是存储数据库的位置。以 /app/dbdata 为例。

chown mysql:mysql /app/dbdata

下面我们用一张动态图来演示上面的两个步骤。

mysql 创建用户和目录

三 准备二进制程序

对于已经编译好的二进制格式的程序包,通常我们解压之后就能够直接使用数据库。但是事实上不是这么简单。如果我们曾经自己编译过程序包的话,我们就会知道,在编译二进制程序的过程中,需要指定一些脚本的目录,或者是二进制执行程序的路径。对于MariaDB也是如此,因为我们下载的是已经编译好的二进制程序包,所以我们解压的程序也要放到固定的目录下,这个目录就是/usr/local/mysql。

下面就是解压二进制程序的步骤,不过我们没有直接创建mysql 目录,而是建立了一个软连接指向了我们解压之后的目录。

# 将压缩文件解压到 /usr/local 路径下
[root@localhost ~]#tar xvf mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local   

# 切换目录
[root@localhost ~]cd /usr/local/

# 针对解压后的路径 建立软连接
[root@localhost local]#ln -sv mariadb-10.2.8-linux-x86_64/ mysql

# 查看建立之后的软连接
[root@localhost local]#ll -d m*
drwxrwxr-x 12 1021 1004 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64
lrwxrwxrwx  1 root root  28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/

#  修改目录的权限,让mysql 用户具有全部最高权限。
[root@localhost local]#chown -R root:mysql /usr/local/mysql/
[root@localhost local]#ll -d m*
drwxrwxr-x 12 root mysql 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64
lrwxrwxrwx  1 root root   28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/

下面我们去查看一下 解压后的目录内一共都包含哪些内容。

[root@localhost mysql]#ll
total 176
drwxrwxr-x  2 root mysql  4096 May  3 02:05 bin
-rw-r--r--  1 root mysql 17987 Aug 17 18:05 COPYING
-rw-r--r--  1 root mysql 86263 Aug 17 18:05 COPYING.thirdparty
-rw-r--r--  1 root mysql  2275 Aug 17 18:05 CREDITS
drwxrwxr-x  3 root mysql    18 Aug 18 04:16 data
-rw-r--r--  1 root mysql  8245 Aug 17 18:05 EXCEPTIONS-CLIENT
drwxrwxr-x  3 root mysql    19 Aug 18 04:15 include
-rw-r--r--  1 root mysql  8694 Aug 17 18:05 INSTALL-BINARY
drwxrwxr-x  4 root mysql   318 May  3 02:05 lib
drwxrwxr-x  4 root mysql    30 Aug 18 04:16 man
drwxrwxr-x 11 root mysql  4096 Aug 18 04:16 mysql-test
-rw-r--r--  1 root mysql  2371 Aug 17 18:05 README.md
-rw-r--r--  1 root mysql 19510 Aug 17 18:05 README-wsrep
drwxrwxr-x  2 root mysql    30 Aug 18 04:16 scripts
drwxrwxr-x 30 root mysql  4096 Aug 18 04:16 share
drwxrwxr-x  4 root mysql  4096 Aug 18 04:16 sql-bench
drwxrwxr-x  3 root mysql   275 Aug 18 04:16 support-files
  • bin: 可执行的二进制程序的存放目录,客户端程序mysql就位于这个目录下。

  • COPYING:版权以及开源信息

  • COPYING.thirdparty: 版权信息

  • CREDITS:关于MariaDB软件基金会的一些相关信息,里面还有国内的互联网巨头阿里

  • data:默认的数据库存放目录,如果我们一开始没有指定数据库存放目录的话,那就会被存储到这个位置。

  • EXCEPTIONS-CLIENT:例外情况

  • include:MariaDB 所需要的一些程序文件

  • INSTALL-BINARY: 安装帮助文档,可以详细阅读,对安装数据库有很大的帮助

  • lib: 软件运行所需要的库文件

  • man:软件的帮助文档

  • mysql-test: 数据库的测试组件

  • scipts:mysql初始化初始化时要用到的脚本文件,通读一下脚本,可以了解Mysql 的安装过程

  • share: 共享的文件内容

  • support-files: mysql 正常运行所需要的配置文件或者文档,这一点很重要,如果我们要自定义配置文件的话,就需要参考这里面的配置文件来进行定义。

这里有一点需要注意:data目录是数据库的存放路径,我们在之前已经手动指定。在实际生产中,企业数据增长很快,数据库文件有可能会很大,因此最好将该目录指定到一个单独的磁盘上,或者大分区,或者使用逻辑卷都可以,避免因物理空间不足,导致出现故障。

四 准备配置文件

MariaDB 的配置文件可以存放在多个路径下面。但是配置文件的查找次序是固定的。这样也就导致了,配置文件具有了优先级,后面的配置会覆盖掉前面的配置(配置参数相同的情况下)。  我们参考MariaDB 安装路径下的support-files 中的配置文件,创建一个我们自己的配置文件并存放于/etc/mysql/my.cnf 中

# 创建配置文件路径 
[root@localhost ~]#mkdir /etc/mysql 
[root@localhost ~]#cd /etc/mysql

# 将参考文件复制到我们创建的mysql 路径下
[root@localhost mysql]#cp /usr/local/mysql/support-files/my-huge.cnf  /etc/mysql/my.cnf

然后在这个配置文件中,加入我们刚刚的指定的一些目录和信息。如下图所示。

mysql配置文件修改

前面我们说过,配置文件的查找执行是有一定顺序的。当MariaDB安装成功之后,执行下面的命令,就可以查看到配置文件的查找顺序了。

# 创建配置文件路径 
[root@localhost ~]#mkdir /etc/mysql 
[root@localhost ~]#cd /etc/mysql

# 将参考文件复制到我们创建的mysql 路径下
[root@localhost mysql]#cp /usr/local/mysql/support-files/my-huge.cnf  /etc/mysql/my.cnf

五 创建数据库文件

进入到 /usr/local/mysql/ 路径下,创建数据库文件。在创建数据库的同时指定数据库存放目录以及默认用户。

[root@localhost mysql]#cd /usr/local/mysql/
[root@localhost mysql]#./scripts/mysql_install_db --datadir=/app/dbdata --user=mysql


# 切换到我们指定的数据库存放路径下面,可以看到一些相关文件。这里面的每一个路径就是一个数据库。
[root@localhost mysql]#cd /app/dbdata/
[root@localhost dbdata]#ls
aria_log.00000001  ib_buffer_pool  ib_logfile0  mysql             mysql-bin.index  performance_schema
aria_log_control   ibdata1         ib_logfile1  mysql-bin.000001  mysql-bin.state  test

六 准备日志文件

因为CentOS 6 和CentOS 7 的日志路径有所不同,所以创建的日志文件的路径也是不一样的。CentOS6 中是/var/log/mysqld.log,而CentOS 7 中则是 /var/log/mariadb/mariadb.log

# 创建文件路径
[root@localhost mysql]#mkdir /var/log/mariadb

# 创建日志文件
[root@localhost mysql] /var/log/mariadb/mariadb.log

# 修改文件权限
[root@localhost mysql]#chown mysql /var/log/mariadb/mariadb.log

如果这一步,不确定应该创建哪些文件,那么就可以先执行第七步操作,然后根据第七步的错误提示,来创建我们所需要的文件。

七 准备服务脚本,并启动服务

将mysql的服务脚本复制到服务目录下。因为CentOS7 与低版本的服务兼容,所以我们就直接将脚本复制到/etc/init.d/目录下就好。

#复制mysql的脚本到服务目录下
[root@localhost mysql]#cp support-files/mysql.server  /etc/rc.d/init.d/mysqld

# 将mysql的服务添加到开机启动中
[root@localhost mysql]#chkconfig --add mysqld
[root@localhost mysql]#chkconfig --list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use      
      'systemctl list-dependencies [target]'.

mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off


# 启动MySQL 服务
[root@localhost mysql]#service mysqld start
Starting mysqld (via systemctl):                           [  OK  ]
  • 如果我们在第六步没有指定日志文件或者指定了日志文件,但是忘记修改权限的话,这一步都会出错的,不过出错了也不要着急,根据提示信息一点一点来修改就可以了。

  • 我们在这一步中将mysql的服务脚本复制到了/etc/rc.d/init.d/路径下,这是因为CentOS 7兼容了CentOS 6 的服务模式。当然也可以按照CentOS 7的服务管理方式来进行,配置文件位于/usr/lib/systemd/system 路径下。

八 配置客户端环境变量

完成了前面的几步操作,我们就已经完成了大部分的工作,此时服务已经启动,我们可以使用ss 工具来查看3306端口是否已经开启。  但是此时,我们使用mysql 命令通过客户端去访问mysql数据库的话,会提示找不到mysql 命令,所以我们要指定一下,mysql 命令的环境变量。  前面我们说过,mysql解压之后一些二进制的可执行文件位于 解压后目录的/bin文件夹下,所以我们将这个路径添加到环境变量中。

# 单独指定一个路径来修改环境变量,这样便于管理。
[root@localhost mysql]#cat /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH

# 执行一下这个脚本,使环境变量生效
[root@localhost mysql]#. /etc/profile.d/mysql.sh

八 安全初始化

完成了第七步之后,我们已经能够顺利的访问到数据了,甚至匿名访问也是的。可是此时的数据库还是不足够安全的,并不能投入到实际的生产中使用,所以我们需要对数据库进行安全初始化。
我们根据安装文件中提供的安全初始化脚本,来进行数据库的安全初始化,详细查看下面的这张动图。

mysql 安全初始化

下面对图中修改过的几项进行一个详细的解释

# 是否重新设置root用户的密码
Set root password? [Y/n] y

# 是否删除匿名用户
Remove anonymous users? [Y/n] y

# 是否不允许root用户远程登陆
Disallow root login remotely? [Y/n] n

# 是否删除测试数据库
Remove test database and access to it? [Y/n] y

# 重新加载可用的数据库表
Reload privilege tables now? [Y/n] y

以上,我们就详细的介绍了在CentOS 7 中安装MariaDB 10.2.8 版本的全部过程。并且我们只是进行了简单的配置,在实际生产中,会经常使用到MariaDB,所以将整个安装过程写成一个脚本,或许也是一个不错的选择。若有问题,欢迎留言。


个人博客地址:http://www.pojun.tech/ 欢迎访问




     本文转自Eumenides_s 51CTO博客,原文链接:http://blog.51cto.com/xiaoshuaigege/1969104,如需转载请自行联系原作者








相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
120 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
104 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
171 2
|
2月前
|
Linux 知识图谱
Centos7安装killall,fuser, killall,pstree和pstree.x11
通过上述步骤,您已在CentOS 7系统中成功部署了killall、fuser、pstree以及pstree.x11,为高效管理系统进程打下了坚实基础。更多关于服务器管理与优化的知识,获取全面技术支持与解决方案。
97 1
|
2月前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
211 1
|
1月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
236 0
|
1月前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
74 0