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

一、实验目的

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

相关文章

安装开始...1.打开“https://dev.mysql.com/downloadsepo/yu...
安装Helm3#官网下载慢#wgethttps://get.helm.sh/helm-v3.5.4...
通过Linux命令行启动用的指令:systemctlstartmariadb.servi...
InstallingMariaDBServer10.4TodeployMariaDBCommunityServe...
阅读目录一什么是存储引擎二mysql支持的存储引擎三使用存储引...
1、安装MariaDB安装命令yum-yinstallmariadbmariadb-server安...