Linux MariaDB部署

发布于:2025-03-28 ⋅ 阅读:(26) ⋅ 点赞:(0)

1:查看Linux系统版本

cat /etc/os-release

#返回结果:

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31" 

2:下载MariaDB安装包,根据步骤1找对应的安装包:

示例版本:mariadb-10.4.18-linux-x86_64

3:利用lrzsz工具上传安装包:

事先规划好mariadb的安装目录:

比如:使用df -h 查看磁盘空间使用情况,使用mkdir -p 递归创建好安装目录和数据文件存放目录,示例目录:

安装包目录:/Home/mariadb/

数据文件目录:/Home/mariadb/data

# 进入安装目录
cd /Home/mariadb

# 上传安装包
rz mariadb-10.4.18-linux-x86_64.tar.gz

# 解压tar.gz文件 
tar -xzvf mariadb-10.4.18-linux-x86_64.tar.gz

-x:表示从压缩档案中提取文件
-z:表示文件是经过 gzip 压缩的
-v:表示详细模式,会在解压过程中列出所有被处理的文件
-f:指定要处理的文件名

# 把解压的全部文件转移到当前目录
mv mariadb-10.4.18-linux-x86_64/* .

# 删除空文件夹
rm -rf mariadb-10.4.18-linux-x86_64

4:创建mysql 用户并赋予权限

 useradd -s /sbin/nologin -M mysql
  • useradd:这是用于创建新用户账户的基本命令
  • -s /sbin/nologin
    • /sbin/nologin 是一个特殊的 shell,它不允许用户登录系统。当用户尝试登录时,会显示一条消息说账户当前不可用。
    • 这个设置对于服务账户来说很有用,因为它们通常不需要直接登录系统,而是通过服务本身进行管理
  • -M
    • 这个选项告诉 useradd 命令不要为用户创建主目录。
    • 默认情况下,useradd 会为用户创建一个主目录,但对于许多服务账户来说,这是不必要的。
  • mysql:这是新用户的用户名。在这个例子中,我们创建了一个名为 mysql 的用户,这通常是用于运行 MySQL 数据库服务的账户
#所有权给mysql
sudo chown -R mysql:mysql /home/mariadb
  • chown
    • 改变文件或目录的所有者和/或组。
    • 语法为 chown [选项] [新所有者][:新组] 文件或目录
  • -R
    • 递归地更改指定目录及其所有子目录和文件的所有权

5:执行安装脚本

进入到安装目录(/Home/mariadb/)

./scripts/mysql_install_db --basedir=/home/mariadb --datadir=/home/mariadb/data --user=mysql

注意上面的脚本路径分隔符“/”前后不要有空格,否则会有报错 ,执行响应结果:

Installing MariaDB/MySQL system tables in '/home/mariadb/data' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

上面这句提示:如果要开机启动mysqld,应复制support-files/mysql.server脚本文件到相应的目录中,参考下面的开机自启动

 6:修改my.cnf配置文件

在步骤5执行安装前linux系统中已经存在/etc/my.cnf, mariadb启动时会检查这个配置文件,主要配置basedir 和 datadir两个目录,及端口号等,修改前可做一个备份;

cp support-files/wsrep.cnf  /etc/my.cnf

其中“support-files/wsrep.cnf”根据安装的mariadb版本不同,名称会不同

编辑/etc/my.cnf文件:

在[mysqld]节点下增加如下配置:

[mysqld]
basedir=/home/mariadb
datadir=/home/mariadb/data

7:设置mysql环境变量

echo 'export PATH=/home/mariadb/bin:$PATH' >  /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

将 /home/mariadb/bin 追加到系统的 PATH 环境变量中,重定向输出到mysql.sh脚本中;“/etc/profile.d/”目录用于存放各种 shell 初始化脚本。系统会在用户登录时自动加载该目录下的脚本

查看环境变量:

[root@mftx1438 mariadb]# $PATH
或者验证mysql 指令是否生效:

[root@mftx1438 mariadb]# mysql --version
mysql  Ver 15.1 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1

8:设置开机自启动mariadb

# 复制启动脚本到开机启动初始化服务脚本中
cp support-files/mysql.server /etc/rc.d/init.d/mysql.server

# 加入开机自启动服务列表中
chkconfig --add mysql.server

# 设置开机启动
chkconfig mysql.server on

此时可以开启mariadb服务了:

systemctl start mysql.server

或者也可以这样:/etc/init.d/mysql.server start 对应停止就是stop

9:设置root密码

开启mariadb后,执行

mysql -uroot -p

ctrl+C 不输入密码登录;

在mariadb控制台中输入下列指令,赋予root账号权限;

grant all privileges on *.* to 'root'@'%' identified by '111111';
grant all privileges on *.* to 'root'@'localhost' identified by '111111';
grant all privileges on *.* to 'root'@'127.0.0.1' identified by '111111';
flush privileges;

重新使用root登录mariadb: mysql -uroot -p111111

[root@mftx1438 mariadb]# mysql -uroot -111111
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.4.18-MariaDB MariaDB Server

执行查询: select @@version

<The end>