MariaDB教程:MariaDB入门

“ MySQL做得更好”是描述MariaDB的一种方法。 它是由MySQL的一个自己的创造者发起的流行的开源数据库项目的分支,但是拥有一个不同的开发团队,默认情况下包括许多强大的功能,而不是仅作为附件提供,并且具有许多性能,可用性和安全性改进不能保证出现在MySQL中。

MariaDB通常被称为MySQL的“直接替代品”,特别是因为MariaDB项目与原始项目保持紧密同步。 也就是说,这就像是说马自达是斯巴鲁的直接替代品。 它们既是汽车,又是以相同的方式驱动的,但是它们提供的功能和实现的方式差异很大,值得引起注意。

[ 什么是GraphQL? 通过设计更好的API •教程: 如何开始使用GraphQL •教程: 如何开始使用GraphQL Microsoft Graph Explorer:一个尚未准备好的好工具 | 通过InfoWorld的App Dev Report新闻通讯了解编程中最热门的话题。 ]

在本文中,我们将逐步介绍启动标准MariaDB服务器安装所需的步骤。 在此过程中,我们将特别注意从以前的MariaDB安装升级或将MySQL数据库实例迁移到MariaDB时需要记住的事项。

请注意,本文中的讨论重点是MariaDB的社区开源版本,而不是针对企业用户的付费版本 。 这些功能包括OLTP之类的功能,集群以及针对Apache Kafka和Apache Spark之类的服务的数据适配器。

哪里可以下载MariaDB 10.3

MariaDB基金会维护着自己的MariaDB二进制文件下载站点 。 所有受支持的操作系统都在同一页面上,每个操作系统都提供各种选项。 如果愿意,您可以获取源代码并源代码编译MariaDB ,但是在大多数情况下,您不需要这样做。

如何安装MariaDB 10.3

设置MariaDB的过程将取决于目标操作系统。

  • Microsoft Windows用户可以下载.MSI程序包或.ZIP文件。 .MSI用于在系统上正式安装; .ZIP归档文件可以解压缩到任何目录中并直接从那里运行。 但是,.ZIP存档版本要求您手动执行任何配置。 .MSI软件包通过GUI安装和配置MariaDB。
  • Linux用户可以选择gzip压缩的.TAR文件,用于基于Ubuntu / Debian的发行版的.DEB软件包或用于基于Red Hat / Fedora的发行版的.RPM软件包。 请注意,如果您安装MariaDB提供的.DEB。/ RPM文件,则需要首先为Linux安装配置适当的存储库 。 也可以从Linux发行版的默认存储库中安装MariaDB,但您可能无法在此处获取最新版本的MariaDB。
  • MacOS用户可以使用Homebrew软件包管理系统来获取MariaDB,该系统包含预编译的二进制文件。 请注意,某些组件(CONNECT和OQGRAPH数据库引擎)未包含在预构建的二进制软件包中,因此需要使用--build-from-source命令行开关从源代码进行编译。

MariaDB还提供 Linux的Docker映像 。 奇怪的是,您仍然需要通过配置文件来配置MariaDB的选项,并找到一个位置来存储其数据,而不是容器使用的主机上的默认路径。 例如,如果要在/my/own/datadir主机上启动MariaDB容器,则可以使用以下启动命令:

$ docker run --name some-mariadb -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag

上面的示例来自Docker Hub上的MariaDB页面 ,其中包含有关如何完成此操作的更多详细信息。

如何从以前的版本升级到MariaDB

如果要从早期版本的MariaDB升级,则有两种常规升级策略。

  • 就地升级。 这涉及用较新的版本替换现有的MariaDB二进制文件。
  • 导出并重新导入。 这涉及从旧版本中转储数据库的内容,并将它们导入新版本中。

无论哪种情况,都应确保要升级的数据库不存在挥之不去的兼容性问题。 检查“升级MariaDB”文档以查看是否存在特定于您要迁移的版本的问题。

由于MariaDB在不同平台之间的体系结构存在一些细微差异,因此升级过程将根据执行位置的不同而有所不同。

微软Windows

在Windows上,最好的策略是与旧版本并行安装新版本的MariaDB,然后根据需要停用旧版本。

MariaDB支持具有任意数量的并行版本,只要它们具有不同的主/次版本号即可。 例如,可以并排运行10.0和10.2版本,但不能同时运行10.2.6和10.2.7版本。 在后一种情况下,安装10.2.7将自动覆盖并更新10.2.6安装。 此规则的一个例外是,当一个实例是32位版本而另一个实例是64位版本时,即使它们共享相同的次要版本号,它们也可以共存,因为32位和64位版本是技术上不同的产品。

如果您使用.MSI软件包在Windows上进行安装,则安装程序将尝试检测MySQL或MariaDB的现有实例,并为您提供升级它们的机会。 任何现有数据都保留在其原始位置。

如果你想在安装新版本之后手动进行升级,使用mysql_upgrade命令行工具的版本与版本升级数据。 是的,这是mysql_upgrade ,因为它从MySQL实例以及MariaDB执行升级,并且因为命令名称的选择有助于保持与为MySQL编写的脚本的兼容性。

的Linux

在Linux系统上,升级过程要求您先卸载旧版本的MariaDB,然后再安装新版本。 在执行此操作之前,如果要从MySQL升级,请使用mysqldump工具对现有数据库进行完整备份,如果要从早期版本的MariaDB进行迁移,请使用mariabackup工具

有关在同一系统上并排运行多个MariaDB实例的更多详细信息,请参阅此MariaDB知识库文章

如何配置MariaDB

MariaDB的大量配置选项可能会让人不知所措,但幸运的是,在安装或升级过程的初始阶段不需要许多配置选项。

在许多情况下,MariaDB安装程序会自动将MariaDB设置为在引导时启动,并在安装程序脚本完成后立即启动。 如果需要手动完成此操作,可以使用以下命令来完成:

systemctl start mariadb.service
systemctl enable mariadb.service

默认情况下,MariaDB在安装后会做的另一件事是,自动创建一个具有受限特权的系统帐户mysql ,以便运行MariaDB进程。这为您省去了必须自行设置的麻烦。

如果您从存档中解压缩了MariaDB的文件,而不是正式安装了它,则可能需要运行mysql_install_db脚本来设置MariaDB的系统表。

编辑MariaDB配置文件

Microsoft Windows图形安装程序以及Linux的安装脚本为MariaDB配置了最重要的选项。 使用Windows GUI,您可以更改最常见的选项(例如,运行MariaDB的端口),但是会为所有内容自动提供合理的默认值。

这些选择记录在MariaDB使用的配置文件中 。 该文件的存储位置取决于您正在运行的系统。 有关详细信息,请参见上一个链接。

您可能不需要编辑此文件即可启动和运行MariaDB,因为MariaDB会再次为最常见的设置选择合理的默认值。 很容易被此处可以解决的大量设置吓倒,但是对于大多数安装而言,您可能不需要开箱即用地进行任何更改。

MariaDB配置文件的结构使得MySQL和MariaDB实例都可以互换使用它们。 也可能有配置文件的某些部分仅由任一产品的特定版本使用。 不过,最好的长期策略是为MariaDB和MySQL的每个单独实例都拥有一个单独的配置文件,并将这些文件放在每台服务器将彼此独立地发现它们的位置。 (请参阅配置文件上MariaDB知识库页面,以了解将配置文件放置在何处,以便被产品的特定版本发现。)

运行安全安装

除非您严格在开发上下文中运行MariaDB以便在一台机器上使用,否则最好将其锁定。 MariaDB包含一个Perl脚本mysql_secure_installation ,它通过更改几个默认值来保护服务器的安全:

  • 强制为MariaDB使用默认的内部root密码。 这是最关键的,因为MariaDB的默认root密码为空。 (管理员决定该密码是什么;选择一个强密码。)
  • 删除匿名用户访问。
  • 禁止远程root登录。 在某些情况下,您想允许远程用户以root用户访问,但是通常最好禁用此权限。 (允许某种远程根登录的最安全方法是要求人们远程进入服务器本身,然后本地连接到MariaDB。)
  • 删除测试数据库。 测试数据库作为示例或演示包含在MariaDB安装中,但没有理由将其包含在生产系统中。

注意, mysql_secure_installation需要Perl才能运行。 如果您所在的系统未安装Perl运行时,则需要先添加它,然后才能使用此脚本。

MariaDB的主要配置选项

MariaDB 10的绝大多数选项都不需要设置。 无论是使用GUI安装向导还是手动编辑配置文件,都应尽早确定一些与上述客户端安全协议类似的协议。 这是其他几个:

MariaDB连接协议

MariaDB可以通过多种方式接受到服务器的传入连接

  • TCP / IP 。 这是连接到MySQL实例的最广泛使用和理解的方式,因为它允许本地和远程连接。 它也是整体上最慢的,因为流量必须通过整个TCP / IP堆栈。 但是,这通常仅在您需要极高性能的情况下才需要考虑。 对于需要远程客户端连接的任何情况,TCP / IP都是一个简单的答案。 最后,您需要密切注意连接的安全性。 使用上述更高级的密码安全性,也许限制与VPN的连接,依此类推。
  • Unix套接字/命名管道 。 这分别是Unix / Linux和Windows中的两个大致等效的功能。 当客户端/应用程序和服务器位于同一系统上时,套接字和管道最有效,因为可以更快地在客户端和服务器之间传输数据。 也可以通过网络发布这样的连接,但是这样做很麻烦。 在这种情况下,最好只使用TCP / IP。
  • 共享内存。 这是服务器和客户端之间最快的连接选项,但灵活性也最差。 它仅在服务器和客户端位于同一物理系统上时才有效,并且服务器可能很难检测到客户端是否已超时或终止,从而导致未终止的连接积累和浪费资源。

请注意,在Unix系统上,为了提高性能,从localhost所有连接都默认使用Unix套接字。

MariaDB日志记录选项

除了错误日志(默认情况下始终启用)之外,MariaDB还可以维护其他三种日志。 默认情况下,所有其他选项均已禁用,但可以在配置过程中根据需要启用以进行调试。

  • 常规查询日志。 这提供了从启动到关闭的MySQL活动的详细运行摘要。
  • 查询日志速度慢。 可以记录所有执行时间超过x秒(可配置)的查询以进行调试。
  • 二进制日志。 该日志简称为“ binlog”,可以配置为包含对数据库文件的所有修改的二进制转储。 出于明显的原因,这会对性能产生重大影响,因此除非尝试调试真正棘手的问题,否则不应启用它。

诸如MyISAM之类的单个存储引擎也可以保留自己的日志,但是这些不是MariaDB本身的一部分。

默认情况下,日志不会自动清除,因此必须通过运行mysql-log-rotate脚本定期清除。 Binlog是一个例外,默认情况下,它会在30天后过期。 请注意,轮换脚本可能无法在Linux以外的任何其他设备上使用。 在Windows上,您需要手动或使用自己制作的脚本轮换日志。

MariaDB存储引擎和排序规则选项

MariaDB可以与许多不同的存储引擎一起使用 ,每种存储引擎针对不同的工作负载进行了优化。 例如, MyRocks引擎经过优化,可在闪存上使用,而CONNECT引擎可用于挂载纯文本或CSV数据,就像它是本机MariaDB数据库一样。

总的来说,您将要使用InnoDB引擎。 InnoDB是MariaDB中新创建的表的默认选择。 知道原因很有用。

From: https://www.infoworld.com/article/3307112/mariadb-tutorial-get-started-with-mariadb.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值