Shell 脚本一键编译并且安装 mysql

先新建文件

sudo vim ./install-mysql.sh

1.不多说,上代码

#!/bin/bash

userName="mysql"
userGroup="mysql"

version=$1
if [ -z "$version" ]; then
  version="5.7.30"
fi

getVersionMain(){
  string=$1
  array=(${string//./ })
  unset array[2]
  versionM=""
  for var in "${array[@]}"; do
    if [ -z "$versionM" ]; then
      versionM="$var"
    else
      versionM+=".$var"
    fi
  done
  echo "$versionM"
}

versionMax=$(getVersionMain "$version")

installDir="$2"
if [ -z "$installDir" ]; then
  installDir="/usr/local/mysql"
fi

dataDir="$3"
if [ -z "$dataDir" ]; then
  dataDir="/data/mysql"
fi

fileName="mysql-$version.tar.gz"

if ! wget -c -O "$fileName" "https://cdn.mysql.com/archives/mysql-$versionMax/mysql-$version-linux-glibc2.12-x86_64.tar.gz"; then
  echo "wget download mysql-$version fail"
  exit 1
fi

if [ ! -f "$fileName" ]; then
  echo "$fileName not found"
  exit 1
fi

if ! tar -zxvf "$fileName"; then
  echo "decompression fail"
  exit 1
fi

sudo mv "mysql-$version-linux-glibc2.12-x86_64" "$installDir"

sudo groupadd "$userGroup"
sudo useradd -r -g "$userGroup" "$userName"

sudo mkdir -p "$dataDir"
sudo chown mysql:mysql -R "$dataDir"

sudo echo "[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=$installDir  #这是刚才重命名的目录
datadir=$dataDir       #这是刚才建立的数据存放目录
socket=/tmp/mysql.sock
log-error=$dataDir/mysql.err
pid-file=$dataDir/mysql.pid

#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true" >>/etc/my.cnf

sudo chmod -R 777 "$installDir"

sudo mkdir "$dataDir"

sudo chmod -R 777 "$dataDir"

sudo ln -s "$installDir"/bin/* /usr/bin

mysqld --defaults-file=/etc/my.cnf --basedir="$installDir" --datadir="$dataDir" --user="$userName" --initialize

psword=$(cat "$dataDir/mysql.err" | grep 'root@localhost:')

sudo cp $installDir/support-files/mysql.server /etc/init.d/mysql

sudo /etc/init.d/mysql start

echo "数据库初始化密码为:$psword"

2.命令

sudo chmod +x ./install-mysql.sh

sudo ./install-mysql.sh 
#./install-mysql.sh 5.7.30  /usr/local/mysql /data/mysql
#./install-mysql.sh 版本 安装路径 数据存放目录

3.修改默认密码

执行上面代码安装完毕后会输出密码

#如果没有输出则用下面密码进行查看
sudo cat /data/mysql/mysql.err | grep 'root@localhost:' | awk -F  "root@localhost: *" '{print $2}'

#.... for root@localhost: s2dHVkYb1j+%  ....其中 s2dHVkYb1j+% 就是密码

登录mysql

sudo mysql -u root -p
#依次输入下面命令,然后重新登录
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES; 

4.开启远程访问,请阅读下篇文章

https://www.jianshu.com/p/fb559b899eb9

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容