脚本实现二进制MariaDB数据库的安装

本文详细介绍了在Linux环境下使用二进制包安装MariaDB数据库的过程,包括创建用户组、解压安装包、配置环境变量、创建逻辑卷、初始化数据库、配置服务脚本和进行安全加固等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

mariadb属于关系型数据库,通过此实验掌握mariadb数据库的二进制安装

二、实验准备

mariadb-10.2.23-linux-x86_64.tar.gz安装包,虚拟机需要安装expect包

三、实验脚本

vim /data/mysql.sh
#!/bin/bash
#create group user  创建用于mysql服务的组和用户
groupadd -r -g 336 mysql #创建mysql组,系统组,gid336
useradd -r -g mysql -u 336 -s /sbin/nologin -d /data/mysql mysql  #创建用户mysql,系统用户,指定主组mysql,uid336,shell类型/sbin/nologin,家目录/data/mysql(需手动创建)
#tar and link  解压文件和创建软链接
tar xvf /data/mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/  #解压文件至/usr/local/目录下
cd  /usr/local/
ln -s mariadb-10.2.23-linux-x86_64/ mysql  #创建软链接mysql指向mariadb-10.2.23-linux-x86_64
chown -R root.root /usr/local/mysql/  #递归修改mysql的属主和属组为root
#PATH 修改变量PATH,让安装包自带脚本可以执行
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile #将自带脚本路径添加到变量,也可以在/etc/profile.d/下自己创建.sh后缀的文件存放
source /etc/profile  #使变量存放文件生效
#create LV 创建卷组,用来存储数据库,方便容量不够时扩展
mkdir /data/mysql  #创建数据库存放目录
pvcreate /dev/sdb  #创建物理卷
vgcreate vg0 /dev/sdb  #创建卷组
lv -n mysql -L 10G vg0  #创建名为mysql,大小10G的逻辑卷
mkfs.xfs /dev/vg0/mysql  #将逻辑卷文件系统制作为xfs
mount /dev/vg0/mysql /data/mysql  #挂载至/data/mysql目录下
#data准备数据库数据及目录
chown mysql.mysql /data/mysql/  #修改数据库属主属组
cd /usr/local/mysql 
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql  #以指定目录和身份生成数据库
#service  准备mysql服务端的配置文件
mkdir  /etc/mysql
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf  #拷贝模板文件
sed -i "/\[mysqld\]/adatadir=\/data\/mysql" /etc/mysql/my.cnf  #在[mysqld]后添加datadir=/data/mysql
#start script 准备服务启动脚本
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld 
chkconfig --add mysqld  #将服务加入开机启动
service mysqld start  #启动服务
#securety 安全加固
expect <<EOF
spawn mysql_secure_installation  #安全加固脚本,可以重新设置密码
expect "none" {send "\n"}
expect "none" {send "\n"}
expect "password" {send "y\n"}
expect "New" {send "123456\n"}
expect "Re-enter" {send "123456\n"}
expect "anonymous" {send "y\n"}
expect "login" {send "y\n"}
expect "database" {send "y\n"}
expect "privilege" {send "y\n"}
expect eof
EOF                    
测试连接
mysql -uroot -p"password "
    执行结果显示mysql命令未找到,原因是脚本在一个新的子bash进程里面执行,在这个子bash进程里面执行的PATH变量添加、刷新并不能继承至父进程,这才导致PATH变量文件虽然里面有新的路径加入,却还是显示命令未找到,解决方法是再次使文件生效,即source /etc/profile或.  /etc/profile

转载于:https://blog.51cto.com/14230230/2385648

### 准备工作 在CentOS 7上以二进制形式安装MySQL 8.0之前,需确认系统已卸载任何存在的MariaDB实例。这一步骤至关重要,因为两者共存可能导致配置冲突或服务启动失败。 ```bash rpm -qa | grep mariadb ``` 上述命令用于查找当前系统中是否存在MariaDB的相关组件。如果存在,则应逐一移除这些组件: ```bash rpm -e --nodeps 文件名 ``` 这里的`文件名`是指通过前一条命令查询得到的具体包名称[^1]。 ### 下载 MySQL 8.0 的二进制分发版 访问官方下载页面获取适用于Linux (Generic) glibc 2.12 (x86, 64-bit),压缩格式为`.tar.xz`的最新稳定版本。例如: ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz ``` 注意:具体URL可能会随着新版本发布而变化,请务必前往官方网站核实最新的下载链接[^2]。 ### 解压并设置目录结构 创建目标路径 `/usr/local/mysql` 并将下载好的压缩包解压至此处: ```bash mkdir -p /usr/local/mysql && \ tar -xf mysql-8.0.*-linux-glibc*.tar.xz -C /usr/local/mysql/ ``` 此操作会把所有文件提取至指定位置,并保持原有的目录层次不变[^4]。 ### 初始化数据目录与权限调整 进入刚刚解压后的MySQL根目录执行初始化脚本,同时确保拥有足够的权限来完成该过程: ```bash cd /usr/local/mysql/mysql-* && bin/mysqld --initialize-insecure --user=mysql ``` 这条指令会在不设定初始密码的情况下建立必要的表空间和其他基础架构;另外还需修改属组属性以便后续管理更加便捷: ```bash chown -R mysql:mysql . ``` ### 创建软连接简化调用流程 为了方便日后管理和维护,在系统的标准可执行程序路径内设立指向实际二进制文件的快捷方式: ```bash ln -s /usr/local/mysql/bin/* /usr/sbin/ ``` 这样做的好处是可以直接运行诸如 `mysqld`, `mysqladmin` 这样的工具而不必每次都输入完整的绝对路径。 ### 启动 MySQL 服务 最后就是让MySQL作为守护进程随操作系统一同启动,并立即开启它: ```bash systemctl enable mysqld.service && systemctl start mysqld.service ``` 此时应该能够正常访问数据库服务器了。建议初次登录后尽快更改root用户的默认为空白状态下的密码,增强安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值