MySQL一键安装脚本
1. 安装脚本
wget https://files.catbox.moe/lwh5vs.sh -O /root/install-mysql.sh && chmod +x /root/install-mysql.sh && /root/install-mysql.sh
2. 默认密码
user: root password: admin
3. 其他方式
下载不了的话,运行下面脚本
3.1 使用yum的(建议使用)
#!/bin/bash
. /etc/init.d/functions
SRC_DIR=`pwd`
#MYSQL='mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz'
MYSQL='mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz'
COLOR='echo -e \E[01;31m'
END='\E[0m'
MYSQL_ROOT_PASSWORD=admin
check (){
if [ $UID -ne 0 ]; then
action "当前用户不是root,安装失败" false
exit 1
fi
cd $SRC_DIR
`wget -c https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz`
if [ ! -e $MYSQL ];then
$COLOR"缺少${MYSQL}文件"$END
$COLOR"请将相关软件放在${SRC_DIR}目录下"$END
exit
elif [ -e /usr/local/mysql ];then
action "数据库已存在,安装失败" false
exit
else
return
fi
}
install_mysql(){
$COLOR"开始安装MySQL数据库..."$END
yum -y -q install chkconfig libncurses* libaio numactl-libs libaio &> /dev/null
cd $SRC_DIR
tar xf $MYSQL -C /usr/local/
MYSQL_DIR=`echo $MYSQL| sed -nr 's/^(.*[0-9]).*/\1/p'`
ln -s /usr/local/$MYSQL_DIR /usr/local/mysql
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
mkdir -p /data/mysql
chown -R root.root /usr/local/mysql/
id mysql &> /dev/null || { useradd -s /sbin/nologin -r mysql ; action "创建mysql用户"; }
echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
ln -s /usr/local/mysql/bin/* /usr/bin/
cat > /etc/my.cnf <<-EOF
[mysqld]
server-id=1
log-bin
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF
mysqld --initialize --user=mysql --datadir=/data/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
[ $? -ne 0 ] && { $COLOR"数据库启动失败,退出!"$END;exit; }
MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.log`
mysqladmin -uroot -p$MYSQL_OLDPASSWORD password $MYSQL_ROOT_PASSWORD &>/dev/null
action "数据库安装完成"
}
check
install_mysql
运行mysql的命令报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。
解决办法
yum install libncurses*
3.2 使用apt的系统
#!/bin/bash
SRC_DIR=`pwd`
MYSQL='mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz'
MYSQL_DOWNLOAD_URL="https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz"
Green_font_prefix="\033[32m"
Red_font_prefix="\033[31m"
Green_background_prefix="\033[42;37m"
Red_background_prefix="\033[41;37m"
Font_color_suffix="\033[0m"
Info="[${Green_font_prefix}信息${Font_color_suffix}]"
Error="[${Red_font_prefix}错误${Font_color_suffix}]"
Tip="[${Green_font_prefix}注意${Font_color_suffix}]"
MYSQL_ROOT_PASSWORD=czyadmin
check_root() {
[[ $EUID != 0 ]] && echo -e "${Error} 当前非ROOT账号(或没有ROOT权限),无法继续操作,请更换ROOT账号或使用 ${Green_background_prefix}sudo su${Font_color_suffix} 命令获取临时ROOT权限(执行后可能会提示输入当前账号的密码)。" && exit 1
}
check_is_installed() {
if [ ! -e $MYSQL ];then
echo -e "${Error} 缺少${MYSQL}文件"
echo -e "${Error} 请将相关软件放在${SRC_DIR}目录下"
exit 1
elif [ -e /usr/local/mysql ];then
echo -e "${Error} 数据库已存在,安装失败"
exit 1
else
return
fi
}
download_mysql() {
cd $SRC_DIR
if [ ! -e $MYSQL ];then
echo -e "${Tip} ${MYSQL}文件已下载到${SRC_DIR}目录下"
else
wget "${MYSQL_DOWNLOAD_URL}"
fi
}
install_mysql() {
echo -e "${Info} 开始安装MySql......"
echo -e "${Info} 开始安装依赖..."
apt install sysv-rc-conf libaio.* libnuma.* libncurses.* -y &> /dev/null
echo -e "${Info} 依赖安装完成,开始解压MySql文件..."
cd $SRC_DIR
tar zxf $MYSQL -C /usr/local/
echo -e "${Info} 解压完成,开始配置MySql环境..."
MYSQL_DIR_NAME=`echo $MYSQL| sed -nr 's/^(.*[0-9]).*/\1/p'`
mv /usr/local/$MYSQL_DIR_NAME /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/
echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
`source /etc/profile`
cat > /etc/my.cnf <<-EOF
[mysql]
# 设置mysql字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据存放目录
datadir=/usr/local/mysql/data
# 设置最大连接数
max_connections=200
# 设置默认字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
EOF
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
cd $basedir
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp ./support-files/mysql.server /etc/init.d/mysqld
MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /usr/local/mysql/data/mysql.log`
echo $MYSQL_OLDPASSWORD > /usr/local/mysql/data/init_password.txt
chmod +x /etc/init.d/mysqld
sysv-rc-conf --add mysqld
sysv-rc-conf mysqld on
systemctl daemon-reload
service mysqld start
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
./bin/mysqladmin -uroot -p$MYSQL_OLDPASSWORD password $MYSQL_ROOT_PASSWORD &>/dev/null
`source /etc/profile`
echo -e "${Info} MySql安装成功! "
}
check_root
download_mysql
check_is_installed
install_mysql