【Linux】安装MariaDB Community Server最佳实践

news/2024/11/26 6:18:32/

写作背景:记一次从MySQL平台迁移到MariaDB的测试环境准备

文章目录

  • 安装
    • YUM (CentOS, RHEL)
    • APT (Debian, Ubuntu)
    • ZYpp (SLES)
  • 启动
  • 配置
  • 测试
    • 本机登录
    • 远程登录


在主流Linux上安装MariaDB Community Server,官方当前(2023年3月10日)最新版本为10.11.2-GA,本文就以这个版本为例,进行安装测试。

安装

根据自己的主机平台YUM (RHEL, CentOS), APT (Debian, Ubuntu), and ZYpp (SLES),选择以下不同的安装方式

YUM (CentOS, RHEL)

$ sudo yum install wget$ wget https://r.mariadb.com/downloads/mariadb_repo_setup$ echo "ad125f01bada12a1ba2f9986a21c59d2cccbe8d584e7f55079ecbeb7f43a4da4 mariadb_repo_setup" | sha256sum -c -$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"$ sudo yum install MariaDB-server MariaDB-backup

APT (Debian, Ubuntu)

$ sudo apt install wget$ wget https://r.mariadb.com/downloads/mariadb_repo_setup$ echo "ad125f01bada12a1ba2f9986a21c59d2cccbe8d584e7f55079ecbeb7f43a4da4 mariadb_repo_setup" | sha256sum -c -$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"$ sudo apt update$ sudo apt install mariadb-server mariadb-backup

ZYpp (SLES)

$ sudo zypper install wget$ wget https://r.mariadb.com/downloads/mariadb_repo_setup$ echo "ad125f01bada12a1ba2f9986a21c59d2cccbe8d584e7f55079ecbeb7f43a4da4 mariadb_repo_setup" | sha256sum -c -$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-10.11"$ sudo zypper install MariaDB-server MariaDB-backup

启动

操作命令
查看服务状态sudo systemctl status mariadb
启动sudo systemctl start mariadb
停止sudo systemctl stop mariadb
重启sudo systemctl restart mariadb
开机自启动sudo systemctl enable mariadb
开机不启动sudo systemctl disable mariadb

这里建议设置开机自启动,可以省去服务器将来发生重启后需要再登录启动数据库的操作。

配置

启动完毕,接着我们需要进行以下简单的配置,才能让应用程序远程连接。首先看一下MariaDB Server安装后的配置文件。

RHEL、CentOS、SLES系统上MariaDB的默认配置目录和文件如下:

  • /etc/my.cnf
  • /etc/my.cnf.d/enable_encryption.preset
  • /etc/my.cnf.d/mysql-clients.cnf
  • /etc/my.cnf.d/server.cnf
  • /etc/my.cnf.d/spider.cnf

Debian、Ubuntu系统上MariaDB的默认配置目录和文件如下:

  • /etc/mysql/my.cnf
  • /etc/mysql/debian.cnf
  • /etc/mysql/mariadb.cnf
  • /etc/mysql/conf.d/
  • /etc/mysql/mariadb.conf.d/50-client.cnf
  • /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
  • /etc/mysql/mariadb.conf.d/50-mysqld_safe.cnf
  • /etc/mysql/mariadb.conf.d/50-server.cnf
  • /etc/mysql/mariadb.conf.d/60-galera.cnf
  • /etc/mysql/mariadb.conf.d/99-enable-encryption.cnf.preset/enable_encryption.preset

默认的配置文件肯定是不满足实际使用需求的,还需要进行参数设置和调优。

官方不建议直接修改默认文件,而是自己创建一个自定义的配置文件,将需要修改的参数配置放在自定义文件中。

那么存放自定义文件的文件夹在哪里呢?官方建议如下:

RHEL、CentOS、SLES系统自定义文件存放位置

  • /etc/my.cnf.d/

Debian、Ubuntu系统可以根据自己的偏好任选以下两个文件夹之一

  • /etc/mysql/conf.d/
  • /etc/mysql/mariadb.conf.d/

自定义文件名,要好记,容易区分如z-custom-my.cnf,自定义文件建好如下

  • /etc/my.cnf.d/z-custom-my.cnf

或者

  • /etc/mysql/mariadb.conf.d/z-custom-my.cnf

接着就可以开始配置了。MariaDB会读取以[mariadb][server]开头的变量集合,这里任选一个就可以。

[mariadb]
bind-address              = 0.0.0.0
key_buffer_size           = 128M
max_allowed_packet        = 10G
log_error                 = mariadb-err.log
innodb_buffer_pool_size   = 1G

更多自定义参数可以参考system variables和options。

保存好自定义文件,然后重启数据库sudo systemctl restart mariadb,接下来我们就可以进行登录测试了。

测试

本机登录

$ sudo mariadbWelcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 57
Server version: 10.11.2-MariaDB-1:10.11.2+maria~ubu2204 mariadb.org binary distributionCopyright (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)]> create user root@'%' identified by 'root';
MariaDB [(none)]> grant all on *.* to 'root'@'%';
MariaDB [(none)]> flush privileges;

执行完以上命令后,赶紧去试试看吧。

如果远程连接不上,可能是防火墙没有打开对应的端口,需要修改防火墙规则。


http://www.ppmy.cn/news/31425.html

相关文章

VMware15配置NAT模式联通网络

最近为了测试C# 开发的桌面应用程序悬浮球的兼容性,在虚拟机上安装了win7系统和xp系统,之前也安装过黑苹果系统,但是win系统倒是第一次安装,在win7系统联网的时候,踩了一些坑,整理纪录一下。 设置主物理机配…

【数据结构】解决顺序表题的基本方法

🚀write in front🚀 📜所属专栏:> 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论&#xff0…

直播回顾 | 聚焦科技自立自强,Bonree ONE 助力国产办公自动化平稳替代

3月5日,两会发布《政府工作报告》,强调科技政策要聚焦自立自强。 统计显示,2022年金融信创项目数同比增长300%,金融领域信创建设当前已进入发展爆发期,由国有大型银行逐渐向中小型银行、非银金融机构不断扩展。信创云…

基础05-TCP三次握手和四次挥手

TCP 连接 三次握手 四次挥手 题目 请描述 TCP 连接的 三次握手 和 四次挥手 建立连接 客户端和服务端通过 HTTP 协议发送请求,并获取内容。 在发送请求之前,需要先建立连接,确定目标机器处于可接受请求的状态。 就例如,你要请…

C++ STL:string类的概述及常用接口说明

目录 一. 什么是STL 二. string类的概述 三. string类的常用接口说明 3.1 字符串对象创建相关接口(构造函数) 3.2 字符串长度和容量相关接口 3.3 字符访问相关接口函数 3.4 字符串删改相关接口函数 3.5 字符查找和子串相关接口函数 3.6 迭代器相…

【JavaSE】数组的定义与使用详解

目录 1.数组的基本概念 1.1数组的好处 1.2什么是数组 1.3数组的定义及初始化 1.3.1数组的创建 1.3.2数组的初始化 1.4数组的使用 1.4.1访问数组中的元素 1.4.2遍历数组 2.数组的类型 2.1认识JVM的内存分布 2.2基本类型变量与引用类型变量 2.3认识null 3.数组的应…

基于Qt WebEngine 的Web仪器面板GUI程控技术

随着IIoT的发展,很多工业仪器也具备了远程管理的GUI。与早期使用串口进行命令交互不同,这些GUI可以直接在远程呈现数据。 作为希望对仪器、软件进行二次开发的小公司来说,会遇到GUI人工操作转自动化的需求。在无法通过串口等传统接口进行自动…

Vue 3.0 单文件组件 【Vue3 从零开始】

#介绍 在很多 Vue 项目中,我们使用 app.component 来定义全局组件,紧接着用 app.mount(#app) 在每个页面内指定一个容器元素。 这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的…