Your commit message
This commit is contained in:
112
常用脚本/mysql安装/mysql-install.sh
Normal file
112
常用脚本/mysql安装/mysql-install.sh
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user