112 lines
2.7 KiB
Bash
112 lines
2.7 KiB
Bash
#!/bin/bash
|
||
|
||
|
||
|
||
# 需要实现的功能--指定端口 安装Mysql
|
||
## 二进制的安装方式
|
||
## docker的安装方式
|
||
|
||
InstallMysql(){
|
||
MysqlPort="3306"
|
||
MysqlInstallMethod="binary"
|
||
MysqlInstallHelp="0"
|
||
MysqlPersistData="/var/lib/docker/mysql-data"
|
||
|
||
while [[ $# > 0 ]]; do
|
||
case "$1" in
|
||
-p|--port)
|
||
MysqlPort="${2}"
|
||
shift # past argument
|
||
;;
|
||
-m|--method)
|
||
MysqlInstallMethod="${2}"
|
||
shift # past argument
|
||
;;
|
||
-d|--data)
|
||
MysqlPersistData="${2}"
|
||
shift # past argument
|
||
;;
|
||
-h|--help)
|
||
MysqlInstallHelp="1"
|
||
;;
|
||
*)
|
||
echo "输入的内容有误,请检查!"
|
||
# unknown option
|
||
;;
|
||
esac
|
||
shift # past argument or value
|
||
done
|
||
|
||
if [ "${MysqlInstallHelp}" -eq "1" ]; then
|
||
cat - 1>& 2 << EOF
|
||
./install-release.sh [-h] [-p|--port 3306] [-m|--method binary|docker]
|
||
-h, --help 打印此安装帮助说明
|
||
-p, --port 安装Mysql的端口,如果不指定此参数,则默为3306
|
||
-m, --method 安装Mysql的方式,binary == 源码编译安装,docker == 使用docker安装;不指定则使用binary
|
||
EOF
|
||
fi
|
||
|
||
# echo $MysqlPort
|
||
# echo $MysqlInstallMethod
|
||
|
||
if [[ ${MysqlInstallMethod} == "binary" ]]; then
|
||
InstallMysqlBinary ${MysqlPort}
|
||
else
|
||
InstallMysqlDocker ${MysqlPort} ${MysqlPersistData}
|
||
fi
|
||
}
|
||
|
||
InstallMysqlBinary() {
|
||
MysqlPort=""
|
||
if [[ "$1" -ne " " ]]; then
|
||
MysqlPort="$1"
|
||
echo "mysql Port = ${MysqlPort}"
|
||
fi
|
||
|
||
echo "InstallMysqlBinary"
|
||
|
||
}
|
||
|
||
InstallMysqlDocker(){
|
||
MysqlPort=""
|
||
MysqlPersistData=""
|
||
|
||
if [[ "$1" -ne " " ]]; then
|
||
MysqlPort="$1"
|
||
echo "mysql Port = ${MysqlPort}"
|
||
fi
|
||
|
||
if [[ "${2}" -ne " " ]]; then
|
||
MysqlPersistData="$2"
|
||
echo "mysql persist data path = ${MysqlPersistData}"
|
||
fi
|
||
|
||
echo "InstallMysqlDocker"
|
||
echo ""
|
||
|
||
echo "开始启动docker-mysql !!"
|
||
# https://hub.docker.com/r/bitnami/mysql#configuration
|
||
# 需要准备一个目录方式 mysql.conf文件
|
||
# 目录权限需要处理
|
||
mkdir -p ${MysqlPersistData}
|
||
chown -R 1001:1001 ${MysqlPersistData}
|
||
|
||
docker run -d \
|
||
-e MYSQL_ROOT_USER=root \
|
||
-e MYSQL_ROOT_PASSWORD=v2ryStr@ngPa.ss \
|
||
-e MYSQL_CHARACTER_SET=utf8mb4 \
|
||
-e MYSQL_COLLATE=utf8mb4_bin \
|
||
-e MYSQL_DATABASE=demo \
|
||
-e MYSQL_USER=wdd \
|
||
-e MYSQL_PASSWORD=wdd14Fk@Clever \
|
||
-e MYSQL_PORT_NUMBER=${MysqlPort} \
|
||
-e MYSQL_AUTHENTICATION_PLUGIN=mysql_native_password \
|
||
-v ${MysqlPersistData}:/bitnami/mysql/data \
|
||
--name mysql-server \
|
||
--network host \
|
||
bitnami/mysql:8.0.27-debian-10-r40
|
||
|
||
}
|
||
|
||
|
||
InstallMysql -p 33306 -m docker -d "/var/lib/docker/mysql-pv" |