1、实验目的
mariadb属于关系型数据库,经过此实验掌握mariadb数据库的二进制安装
2、实验准备
mariadb-10.2.23-linux-x86_64.tar.gz安装包,虚拟机须要安装expect包
3、实验脚本
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