在Linux上运行MariaDB

在 Linux 上运行 MariaDB

mariadb-10.4.7-linux

centos7.5

why?

Q: 为什么是 Linux 而不是某个发行版

A: 因为该方法基本对所有主流 Linux 发行版(x86_64) 可用


Q: 主流 Linux 发行版不都是有 apt yum 包管理软件吗,不可以一键安装吗?

A: 很不幸 我需要部署的 server 是没有外网的


准备工作

请注意! 该文章不面向小白! 本文假设你清楚安装过程中所需要的基本命令的使用!

在 mariadb 官网下载二进制安装包

Package Type 找到 gzipped tar file

Source 找到 Linux x86_64

最终可以找到这样的文件
mariadb-10.4.7-linux-systemd-x86_64.tar.gz (for systems with systemd)

本文安装的是最新的 release 10.4.7

然后下载它

虽然体积非常之大 但安装过程中是不需要额外的组件的 非常省心

下载完之后拷贝到待安装的 server 上

install

安装之前

mariadb/mysql 的 Linux 解压二进制版不会像是 windows 一样直接用mysqld --install service_name 就完成安装了

服务 环境变量 乃至用户都是需要自己手动配置的

以下的的安装步骤参考自官网 但步骤不一样 这是我认为的最佳安装方法

附上官网参考文档:
https://mariadb.com/kb/en/library/installing-mariadb-binary-tarballs/

开始安装

0x01 解压

解压到 mariadb-VERSION-OS

最终的路径看起来像是这样

/usr/local/mariadb-10.4.7-linux-systemd-x86_64

0x02 建立 mysql 目录的软连接

ln -s mariadb-VERSION-OS mysql

0x03 建立 mysql 用户和组

groupadd mysql
useradd -g mysql mysql

0x04 安装

# 进入mariadb的路径
cd mysql

# 安装
./scripts/mysql_install_db --user=mysql

注意 这里要对照命令执行 你所在的目录不对是无法安装的

0x05 分配权限

chown -R root .
chown -R mysql data

0x06 修改配置文件

这一步的目的是为了让 本机上的 mysqlclient mysqladmin 可以通过 sock 直接连接到 server

如果你有其他解决方法这一步可以忽略

vim /etc/my.cnf

找到 socket

修改为

socket=/tmp/mysql.sock

0x07 试启动 MariaDB

./bin/mysqld_safe --user=mysql

这里会遇到一些错误

例如需要的文件夹没有创建或者是没有权限

根据日志来解决

日志路径就在控制台上

当然你可能还会遇到日志都没有权限创建出来的情况

你需要启动前创建出 log 文件的路径并赋权

如果 你遇到了难以 解决的问题 请在本文留下 评论

本站有邮件提醒

inmind.ltd

0x08 添加到系统服务

请确保 0x07 步骤没有任何问题再执行该步骤

确保 mariadb 此时是未启动的

不同 Linux 发行版可能服务的路径不太一样

这里以 centos 为例

cp support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service

启动服务

service mariadb start

0x09 添加环境变量

这一步非必要 主要是能方便使用 mysql 的一些命令工具

export PATH=$PATH:/usr/local/mysql/bin/

0x0a 连接到 MariaDB

默认的 root 用户无密码 仅限 localhost 连接
所以需要本机链接到 mariadb 调整

mysql -uroot

0x0b 增加一个可以远程访问的用户

在 mysqlclient 里执行

use mysql;

--修改权限。%表示针对所有IP,password表示将用这个密码登录root用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;


--立即生效
FLUSH PRIVILEGES;

至此 大功告成

TIPS

惯例 tips

这次没什么好讲的了 姑且算是都很顺利

那就随便唠唠

这种部署方式我推荐用在测试环境 / 开发环境

你可以看到部署完之后配置文件其实很少的 连仅本机访问的配置文件都没有

或者说还少一些步骤 可以把一些生产的预设配置拷贝过去

详情请参阅官方文档

总之对于我要搭建的测试环境就到此结束了

本文链接:https://blog.inmind.ltd/index.php/archives/36/
This blog is under a CC BY-NC-SA 3.0 Unported License