CentOS 7.8 2003 二进制安装 mariadb-10.5.4-linux-systemd-x86

    技术2025-11-15  18

    命令方式 # 确认是否有 mysql 用户 [root@localhost ~]# getent passwd mysql # 创建用户 [root@localhost ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql # 创建目录及授权 [root@localhost ~]# mkdir -p /data/mysql [root@localhost ~]# chown mysql:mysql /data/mysql # 准备文件 ## 下载 [root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.5.4/bintar-linux-systemd-x86_64/mariadb-10.5.4-linux-systemd-x86_64.tar.gz ## 解压 [root@localhost ~]# tar xf mariadb-10.5.4-linux-systemd-x86_64.tar.gz -C /usr/local ## 进入目录,创建软链接 [root@localhost ~]# cd /usr/local [root@localhost local]# ln -sv mariadb-10.5.4-linux-systemd-x86_64/ mysql ## 设置目录权限 [root@localhost local]# chown -R root:mysql /usr/local/mysql/ # 准备配置文件 [root@localhost local]# mkdir /etc/mysql/ [root@localhost local]# cp /etc/my.cnf /etc/mysql/my.cnf [root@localhost local]# vim /etc/mysql/my.cnf ## [mysqld]中添加(或修改)以下内容 datadir = /data/mysql innodb_file_per_table = on skip_name_resolve = on socket=/data/mysql/mysql.sock # 创建数据库文件 [root@localhost local]# cd /usr/local/mysql/ ## 需要安装一个软件 [root@localhost mysql]# yum install -y libaio ## 安装数据库 [root@localhost mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql # 准备服务脚本,并启动服务 [root@localhost mysql]# cp support-files/systemd/mariadb.service /usr/lib/systemd/system # 创建日志文件目录(不创建启动失败) mkdir /var/log/mariadb mkdir /var/run/mariadb chown mysql:mysql /var/log/mariadb chown mysql:mysql /var/run/mariadb # 设置PATH路径并生效 [root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@localhost ~]# . /etc/profile.d/mysql.sh # 创建 /tmp/mysql.sock 软链接 ln -s /data/mysql/mysql.sock /tmp/mysql.sock ## 或在 my.cnf 中添加以下内容 [mysql] socket=/data/mysql/mysql.sock # 启动服务 systelctl start mariadb # 登录 mysql [root@localhost mysql]# mysql 脚本方式 #!/bin/bash # ***本脚本仅于学习和实验*** # 本脚本用于干净的 CentOS 7.8 2003 系统以二进制方式安装 mariadb-10.5.4-linux-systemd-x86_64.tar.gz while : do ok=0 echo '创建 mysql 用户:' useradd -r -s /sbin/nologin -d /data/mysql mysql &>/dev/null && echo '创建成功!' || break echo '创建 /data/mysql 目录:' mkdir -p /data/mysql &>/dev/null && echo '创建成功!' || break echo '目录授权:' chown mysql:mysql /data/mysql echo -e '目录授权成功!\n下载二进制安装包:' wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.5.4/bintar-linux-systemd-x86_64/mariadb-10.5.4-linux-systemd-x86_64.tar.gz && echo '下载成功!' || break echo '解压:' tar xf mariadb-10.5.4-linux-systemd-x86_64.tar.gz -C /usr/local echo -e '解压成功!\n创建软链接:' ln -sv /usr/local/mariadb-10.5.4-linux-systemd-x86_64/ /usr/local/mysql | echo '创建成功' || break echo '创建软链接成功!目录授权:' chown -R root:mysql /usr/local/mysql/ echo -e '目录授权成功!\n创建/etc/mysql/目录:' mkdir /etc/mysql/ &>/dev/null && echo '创建成功!' || break echo '复制并修改配置文件:' cp /etc/my.cnf /etc/mysql/my.cnf && echo '复制成功!' || break echo '修改配置文件:' sed -ri 's@(^datadir=).*@\1\/data\/mysql@' /etc/mysql/my.cnf sed -ri 's@(^socket=).*@\1\/data\/mysql\/mysql.sock@' /etc/mysql/my.cnf sed -ri '/datadir/a skip_name_resolve=on' /etc/mysql/my.cnf sed -ri '/datadir/a innodb_file_per_table=on' /etc/mysql/my.cnf echo '配置文件修改成功!' echo '安装 libaio 软件包:' yum install -y libaio && echo '安装成功!' || break echo '安装数据库:' /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql && echo '安装成功!' || break echo '复制启动脚本:' cp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system echo -e '复制启动脚本成功!\n创建日志文件目录并授权:' mkdir /var/log/mariadb && echo '/var/log/mariadb 创建成功!' || break mkdir /var/run/mariadb && echo '/var/run/mariadb 创建成功!' || break chown mysql:mysql /var/log/mariadb chown mysql:mysql /var/run/mariadb echo -e '日志文件目录授权成功!\n设置环境变量:' echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh && echo '环境变量设置成功!' || break echo '环境变量生效:' echo -e '环境变量已生效!\n创建 mysql.sock 软链接:' ln -s /data/mysql/mysql.sock /tmp/mysql.sock && echo 'mysql.sock 软链接创建成功!' ||break echo '将 mariadb 设置为开机启动并立即启动服务。' systemctl enable --now mariadb && echo '设置成功!' || break echo '查看服务状态:' systemctl status mariadb | grep Active ok=1 echo '请运行". /etc/profile.d/mysql.sh"或重新进入终端后,用 mysql 命令登录。' break done [ $ok == 0 ] && echo '脚本运行异常,中断执行!!!!!' exit
    Processed: 0.016, SQL: 9