现在软件安装经常以来yum就可以顺利安装,但如没有网络时,安装这种安装无法实现,即使使用rpm安装在新节点上也需要再执行安装过程,本文将介绍编译安装方式的自动安装方法,可以实现批量安装或方便迁移软件和数据。
先来看下通过脚本自动完成编译安装的方法
#!/bin/bash
# 下载MySQL源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35.tar.gz
# 解压源码包
tar -zxvf mysql-5.7.35.tar.gz
# 安装依赖库
yum install -y cmake make gcc gcc-c++ bison-devel ncurses-devel
# 进入源码目录
cd mysql-5.7.35
# 创建编译目录
mkdir build
cd build
# 编译安装MySQL
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_DEBUG=OFF \
-DWITH_SSL=system
make && make install
# 初始化MySQL
cd /usr/local/mysql
./bin/mysqld --initialize-insecure --user=mysql
# 添加到系统服务
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
# 启动MySQL
service mysql start
# 获取不同版本的初始密码命令
if [[ -n "$(mysql --version | grep '5.6')" ]]; then
init_pwd_command='grep "temporary password" /usr/local/mysql/log/mysqld.log | awk "{print \$NF}"'
elif [[ -n "$(mysql --version | grep '5.7')" ]]; then
init_pwd_command='grep "A temporary password" /usr/local/mysql/log/mysqld.log | awk "{print \$NF}"'
elif [[ -n "$(mysql --version | grep '8.0')" ]]; then
init_pwd_command='grep "temporary password" /usr/local/mysql/log/mysqld.log | sed -n "1p" | awk "{print \$NF}"'
fi
init_pwd=$(eval $init_pwd_command)
# 设置root密码
mysql -uroot -p$init_pwd -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';"
mysql -e "flush privileges;"
mysql -e "CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
# 创建新用户并授权
mysql -e "create user 'new_user'@'%' identified by 'password';"
mysql -e "grant all privileges on *.* to 'new_user'@'%' with grant option;"
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456Aa.';