该脚本适用于装任何版本的mysql源码包需要到mysql官网复制下载链接,并附带自动更改初始化密码功能,一键进入mysql
进入官网找到你要下载的版本,右键单击红圈位置复制链接
脚本正文
#!/bin/bash
read -p "mysql密码" passwd1
read -p "mysql下载链接" download1
package1="cmake make gcc gcc-c++ bison ncurses ncurses-devel openssl openssl-devel"
source1="./rpmbuild/SOURCES/"
src1="/usr/local/src/"
proce="$( grep processor /proc/cpuinfo | wc -l)"
c1=("挂载镜像" "下载源" "解压安装包" "赋权" "预编译" "编译" "安装" "开启mysql" "登录mysql")
d1 () {
echo -e "\e[32m#####################################\e[0m"
}
mount1 () {
echo ${c1[0]}
echo "[centos7]
name=CentOS7
baseurl=file:///mnt/cdrom
enable=1
gpgcheck=0
" > /etc/yum.repos.d/centos7.repo
mount /dev/sr0 /mnt/cdrom &> /dev/null
df1=$(df -h|grep /dev/sr0|wc -l)
[ $df1 == 1 ] && echo "挂载成功" || echo "挂载失败" &> /dev/null
}
download2 () {
echo ${c1[1]}
yum remove -y boost-* &> /dev/null
find ./ -name mysql-community* -exec rm -rf {} \; &> /dev/null
wget $download1 &> /dev/null
find ./ -name mysql-community* -exec rpm -ivh {} \; &> /dev/null
}
zip1 () {
echo ${c1[2]}
yum install -y bzip2 &> /dev/null
mysql_version="mysql-$(find ./ -name mysql-community*|cut -d - -f 3)"
cd $source1
boost_version="$(find ./ -name "boost*"|awk -F "." '{print $2}'|cut -d / -f 2)"
tar -jxvf $boost_version.tar.bz2 -C $src1 &> /dev/null
tar -zxvf $mysql_version.tar.gz -C $src1 &> /dev/null
}
empower () {
echo ${c1[3]}
yum install -y $package1 &> /dev/null
useradd -M -s /sbin/nologin mysql
damysql=/data/mysql
lomysql=/usr/local/mysql
mkdir -p $damysql/{data,log}
chown -R mysql:mysql $damysql
}
configure1 () {
echo ${c1[4]}
boost_version="$(find ./ -name "boost*"|awk -F "." '{print $2}'|cut -d / -f 2)"
cd -
mysql_version="mysql-$(find ./ -name mysql-community*|cut -d - -f 3)"
cd $src1$mysql_version/
cmake -DCMAKE_INSTALL_PREFIX=$lomysql \
-DMYSQL_DATADIR=$damysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=$lomysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=$src1$boost_version &> /dev/null
[ $? -eq 0 ] && echo "预编译成功" || "预编译失败"
}
complie1 () {
echo ${c1[5]}
make -j $proce &> /dev/null
[ $? -eq 0 ] && echo "编译成功" || "编译失败"
}
install1 () {
echo ${c1[6]}
make install &> /dev/null
[ $? -eq 0 ] && echo "安装成功" || "安装失败"
}
start1 () {
echo ${c1[7]}
chown -R mysql:mysql $lomysql/
mv /etc/my.cnf{,.bak}
echo "[mysqld]
basedir=$lomysql #mysql安装目录
datadir=$damysql/data #mysql数据存放目录
port=3306 #mysql监听端口
socket=$lomysql/mysql.sock #mysql.sock文件存放目录
symbolic-links=0 #关闭mysql的符号链接
character-set-server=utf8 #指定mysql的字符集为utf8
log-error=$damysql/log/mysqld.log #指定mysql的错误日志存放路径
pid-file=$lomysql/mysqld.pid #mysql的pid文件存放目录
" > /etc/my.cnf
cp $lomysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld &> /dev/null
chkconfig mysqld on &> /dev/null
chkconfig --list mysqld &> /dev/null
$lomysql/bin/mysqld --initialize-insecure --user=mysql \
--basedir=$lomysql --datadir=$damysql/data &> /dev/null
/etc/init.d/mysqld start &> /dev/null
[ $(ps -ef|grep mysql|wc -l) -eq 1 ] && "mysql开启失败" || "mysql开启成功"
}
login () {
echo ${c1[8]}
ln -s $lomysql/bin/* /usr/bin/
mysqladmin -u root password "$passwd1" &> /dev/null
mysql -uroot -p$passwd1
}
d1
mount1
d1
download2
d1
zip1
d1
empower
d1
configure1
d1
complie1
d1
install1
d1
start1
d1
login