597.【linux】分享一个安装mysql的脚本[续篇]

2023-03-02  本文已影响0人  七镜

之前写了个 426.【数据库】centos 7系统,二进制方式安装mysql ,很喜欢用二进制装mysql的方法,现在这个需求又出来了,我要装一个mysql在服务器上,于是乎,就想着这次把整个安装步骤,写出一个脚本出来。

直接上脚本:


#!/bin/bash

#Program:

# setup mysql

#History:

#2023/02/26 junfenghe.cloud@qq.com version:0.0.1

path=/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:~/bin

export path

if [ -n "$1" ]

then

    echo "mysql will be installed in $1"

else

    echo "Please input path which mysql will be installed."

    echo "eg: $0 /usr/local"

    exit -1

fi

type 'mysql'

if [ $? -eq 0 ]

then

    echo 'mysql has installed'

    echo 'please uninstall mysql such as: check /var/lib/mysql  && /etc/profile && /etc/init.d/mysql.server && /var/log/mariadb'

    exit -1

fi

bin=$(dirname ${BASH_SOURCE-$0})

bin=$(cd $bin ; pwd)

cd $bin

file_mysql=mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

path_mysql=`echo $file_mysql | awk -F '.tar' '{print $1}'`

path_mysql_full="$(cd $1 ; pwd)/$path_mysql"

export PATH=$PATH:tmp/mysql-8.0.31-linux-glibc2.12-x86_64/bin

msg_info="[INFO]"

# check if exists group:mysql

echo '@Step1 -> groupadd mysql'

if_exists_group_mysql=$(cat /etc/group| grep mysql)

if [ -n "${if_exists_group_mysql}" ]

then

    echo ${msg_info}' group:mysql exists.'

else

    groupadd mysql

    echo ${msg_info}' groupadd mysql ok.'

fi

if_exists_user_mysql=$(cat /etc/shadow | grep mysql)

if [ -n "${if_exists_user_mysql}" ]

then

    echo ${msg_info}‘ group:mysql exists’

else

    useradd -r -g mysql -s /bin/false mysql

    echo ${msg_info} ' useradd -r -g mysql -s /bin/false mysql ok'

fi

if [ -f $file_mysql ]

then

    echo "exist "$file_mysql

else

    wget "https://downloads.mysql.com/archives/get/p/23/file/$file_mysql"

fi

tar -xvf $file_mysql -C $1/

cd $1/$path_mysql

mkdir -p mysql-files

chown mysql:mysql mysql-files

chmod 750 mysql-files

yum install -y libaio

./bin/mysqld --initialize --user=mysql

./bin/mysql_s之前 写了个 [426.【数据库】centos 7系统,二进制方式安装mysql](https://www.jianshu.com/p/f391c72ea730?v=1677768474275) ,很喜欢用二进制装mysql的方法,现在这个需求又出来了,我要装一个mysql在服务器上,于是乎,就想着这次把整个安装步骤,写出一个脚本出来。

直接上脚本:

~~~shell

#!/bin/bash

#Program:

# setup mysql

#History:

#2023/02/26 junfenghe.cloud@qq.com version:0.0.1

path=/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:~/bin

export path

if [ -n "$1" ]

then

    echo "mysql will be installed in $1"

else

    echo "Please input path which mysql will be installed."

    echo "eg: $0 /usr/local"

    exit -1

fi

type 'mysql'

if [ $? -eq 0 ]

then

    echo 'mysql has installed'

    echo 'please uninstall mysql such as: check /var/lib/mysql  && /etc/profile && /etc/init.d/mysql.server && /var/log/mariadb'

    exit -1

fi

bin=$(dirname ${BASH_SOURCE-$0})

bin=$(cd $bin ; pwd)

cd $bin

file_mysql=mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

path_mysql=`echo $file_mysql | awk -F '.tar' '{print $1}'`

path_mysql_full="$(cd $1 ; pwd)/$path_mysql"

export PATH=$PATH:tmp/mysql-8.0.31-linux-glibc2.12-x86_64/bin

msg_info="[INFO]"

# check if exists group:mysql

echo '@Step1 -> groupadd mysql'

if_exists_group_mysql=$(cat /etc/group| grep mysql)

if [ -n "${if_exists_group_mysql}" ]

then

    echo ${msg_info}' group:mysql exists.'

else

    groupadd mysql

    echo ${msg_info}' groupadd mysql ok.'

fi

if_exists_user_mysql=$(cat /etc/shadow | grep mysql)

if [ -n "${if_exists_user_mysql}" ]

then

    echo ${msg_info}‘ group:mysql exists’

else

    useradd -r -g mysql -s /bin/false mysql

    echo ${msg_info} ' useradd -r -g mysql -s /bin/false mysql ok'

fi

if [ -f $file_mysql ]

then

    echo "exist "$file_mysql

else

    wget "https://downloads.mysql.com/archives/get/p/23/file/$file_mysql"

fi

tar -xvf $file_mysql -C $1/

cd $1/$path_mysql

mkdir -p mysql-files

chown mysql:mysql mysql-files

chmod 750 mysql-files

yum install -y libaio

./bin/mysqld --initialize --user=mysql

./bin/mysql_ssl_rsa_setup

mkdir -p /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb

./bin/mysqld_safe --user=mysql & 

#sed -i "s/basedir=\$/basedir=$(pwd)/g" support-files/mysql.server

#sed -i "s/datadir=\$/basedir=$(pwd)\/data/g" support-files/mysql.server

cp support-files/mysql.server /etc/init.d/mysql.server

echo "export PATH=\$PATH:$path_mysql_full/bin" >> /etc/profile

source /etc/profile

echo 'Successfully!!!'

echo 'you can execute  [/etc/init.d/mysql.server start] to start mysql'

exit 0

上一篇下一篇

猜你喜欢

热点阅读