Files
shell-scripts/常用脚本/mysql安装/mysql-install.sh
2024-11-27 10:33:20 +08:00

112 lines
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"