暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【51摸鱼-1】如何快速安装 MariaDB 10.11

原创 严少安 2023-06-07
1518

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

MariaDB 10.11

mariadb 10.11 是当前最新的长支持版本,已经GA,可用于生产环境,并且版本维护到2028年,如果有新系统需要使用mariadb,可以选择这个大版本。

本文主要演示如何在centos系统中使用docker快速安装mariadb。

使用 docker 安装 mariadb 10.11

安装 docker

Docker是一个开放源代码的开放平台软件,用于开发应用、交付应用和运行应用。Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒,从而提高交付软件的速度。 Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、更能高效地利用服务器。

docker 的安装也很简单,在rhel系统中只需要yum一键安装即可。

yum install docker-ce

拉取 mariadb 10.11 镜像

随着版本更新,对应的docker镜像也会更新,所以只需要拉取想要的版本即可,这里的10.11表示这个大版本的最新小版本,如果不加版本号,则表示将拉取mariadb的最新版本。
这里 docker pull mariadb:10.11 和 docker pull mariadb:10.11.3 命令是等效的。

$ docker pull mariadb:10.11
Trying to pull repository docker.io/library/mariadb ...
10.11: Pulling from docker.io/library/mariadb
d1669123f281: Pull complete
7942299fe584: Pull complete
ca116927bbe1: Pull complete
9c0f0b5293ed: Pull complete
d45a2cae5b8e: Pull complete
818ec8e8ed03: Pull complete
63656f4d882b: Pull complete
dd430f2c8014: Pull complete
Digest: sha256:b11a86131ac592eaabede175b3547d12d2c96d63c71936af28217ffc3bb3fee2
Status: Downloaded newer image for docker.io/mariadb:10.11

查看下载的镜像

通过docker images语法查看下载的镜像

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
docker.io/mariadb         10.11               9a79847e85fb        4 days ago          403 MB

启动容器

通过docker run 命令调用对应镜像,启动容器。

$ docker run --name mariadb-10.11 -e MARIADB_ROOT_PASSWORD=123456 -p 3316:3306 --security-opt seccomp=unconfined -d mariadb:10.11
29bddd40c0e1d1776f61cf04b95ad451a40b06fcc575337fb94069c8a5eda472

这里解释一下各个参数的含义,

  • name:是启动后容器的名字
  • e:是传递给容器内的参数,比如这里加了 MARIADB_ROOT_PASSWORD 是指容器启动后,容器内部的mariadb的root密码为123456
  • d: 是镜像的名字和版本号,默认不加会使用latest最新版本

Ps.

这里如果不加参数 --security-opt seccomp=unconfined 则会遇到报错

$ docker logs 02177d4a182a
2023-06-07 01:06:04+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.11.3+maria~ubu2204 started.
2023-06-07 01:06:05+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
        command was: mariadbd --verbose --help
        Can't initialize timers

Ref:
https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239

查看启动后的容器

$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
29bddd40c0e1        mariadb:10.11        "docker-entrypoint..."   14 seconds ago      Up 13 seconds       0.0.0.0:3316->3306/tcp   mariadb-10.11

类似于 linux 查看进程,docker查看正在运行的容器可以使用命令 docker ps,更进一步说,有些容器停止或者中止运行,则可以使用docker ps -a 查看,即查看所有容器的意思。

登入数据库

通过docker exec命令可以对容器进行操作,后面接mairadb登入命令,即可登录数据库。

$  docker exec -it mariadb-10.11 mariadb -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.11.3-MariaDB-1:10.11.3+maria~ubu2204 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

查看版本、当前时间:

MariaDB [(none)]> select version();
+-----------------------------------------+
| version()                               |
+-----------------------------------------+
| 10.11.3-MariaDB-1:10.11.3+maria~ubu2204 |
+-----------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> select now();
+---------------------+
| now()               |
+---------------------+
| 2023-06-07 01:23:21 |
+---------------------+
1 row in set (0.000 sec)

到此,快速使用 mariadb 的工作就达成了,数据库是基石,有数据才能支撑业务运行,才能做多好玩的事情。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论