1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| #!/bin/bash
. /etc/init.d/functions PackageDir="/root" PackageName="mysql-5.7.40-linux-glibc2.12-x86_64" MysqlRootPassword="wuhaolam" ID=`ip a show eth0 | awk -F'[./]' '/\<inet\>/ {print $4}'`
yum -y install libaio numactl-libs libncurses* &> /dev/null || { echo -e "\033[1;31minstall package fail\033[0m";exit 1; }
if ! id mysql &> /dev/null;then groupadd mysql useradd -r -g mysql -s /sbin/nologin mysql fi
if [ -d /data/mysql ];then action "数据库存在,退出安装" /bin/false exit 1 else mkdir -p /data/mysql/ && chown -R mysql:mysql /data/mysql/ fi
[ -d /mysql/binlog/ ] || mkdir -p /mysql/binlog/ && chown -R mysql:mysql /mysql/binlog/
[ -e ${PackageDir}/${PackageName}.tar.gz ] || { echo -e "\033[1;31mPackage file is not exits\033[0m";exit 1; }
tar xf ${PackageDir}/${PackageName}.tar.gz -C /usr/local/ cd /usr/local/ ln -s ${PackageName}/ mysql chown -R root:root /usr/local/mysql/
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh
cat > /etc/my.cnf << EOF [client] port=3306 socket=/data/mysql/mysql.sock
[mysql] prompt="\\\r:\\\m:\\\s(\\u@\\h) [\\d]>\\_"
[mysqld] log-bin=/mysql/binlog/mysql-bin server-id=${ID} datadir=/data/mysql socket=/data/mysql/mysql.sock user=mysql symbolic-links=0 skip_name_resolve=1
log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid EOF
mysqld --initialize --user=mysql --datadir=/data/mysql &> /dev/null
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start &> /dev/null && echo -e "\033[1;32mMySQL startup success\033[0m" || { echo -e "\033[1;31mMySQL startup failed\033[0m";exit 1; }
Password=`awk '/A temporary password/ {print $11}' /data/mysql/mysql.log` mysqladmin -uroot -p${Password} password ${MysqlRootPassword} &> /dev/null && action "数据库安装完成" /bin/true || action "密码修改失败" /bin/false
|