案例:分布式 LAMP 架构构建 Discuz 论坛(编译和安装) - Mysql 的编译和安装(192.168.10.4 主机)
最编程
2024-04-26 09:14:25
...
脚本如下:
#!/bin/bash
#date 2019年12月22日18:08:51
#named:auto_install_mysql
#由于没有下载mysql源码包,所以提前准备好
echo '正在下载资源包...'
yum -y install ncurses-devel gcc gcc-c++ wget make
read -p '你想要的Cmake版本:' VER
wget https://github.com/Kitware/CMake/releases/download/v$VER/cmake-$VER.tar.gz
tar zxf cmake-$VER.tar.gz -C /usr/src
cd /usr/src/cmake-$VER
echo '正在编译安装...'
./configure &> /dev/null
gmake && gmake install &> /dev/null
#创建mysql的用户和组
groupadd mysql
useradd -M -s /sbin/nologin mysql -g mysql
cd /usr/src
tar zxf /mysql-5.6.36.tar.gz
cd mysql-5.6.36/
echo '预编译中...'
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all &> /dev/null
echo '正在编译安装...'
make -j8 && make install -j8 &> /dev/null
echo '对数据库目录进行授权:'
chown -R mysql:mysql /usr/local/mysql
echo '建立配置文件:'
rm -rf /etc/my.cnf
cp support-files/my-default.cnf /etc/my.cnf
#echo '安装Perl模块...'
#如果提示初始化数据库失败,自己手动去掉注释,删掉已安装的软件包,再运行一边脚本
#yum -y install perl-Data-Dumper &> /dev/null
echo '初始化数据库...'
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
echo '设置环境变量:'
echo "PATH=$PATH://usr/local/mysql/bin" >> /etc/profile
. /etc/profile
#mysql 的启动和关闭:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start
#/etc/init.d/mysqld是一个shell脚本,在启动过程中会调用mysqld_safe脚本,最后调用mysqld服务启动mysql,如下所示.
#$bindir/mysql_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1
netstat -anpt | grep 3306
cat << EOF
****************************************
* Mysql has been installed successfully. *
****************************************
EOF