shell一键部署MySQL 5.7教程

MySQL一键部署教程
该教程是通过shell脚本进行实现

#!/bin/bash
source_dir="/home"
mysql_dir="/usr/local/mysql"
mysql_package="mysql-boost-5.7.29.tar.gz"
mysql_SRC_first=$(echo $mysql_package | sed 's/.tar.gz//g')
mysql_SRC=$(echo $mysql_SRC_first | sed 's/boost-//g')
function init()
{
# close selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
# check yes/no x86_64
if [ `uname -m` != "x86_64" ];then
	echo "your system is 32bit ,not install libunwind lib!"
fi
# download depend on the packages 
LANG=C
yum -y install gperftools make cmake gcc gcc-c++ autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel
mkdir $log_dir
groupadd mysql && useradd mysql -s /sbin/nologin -g mysql
echo "www and mysql user && group create!"
}
function mysql_install()
{
echo "######## start install mysql ########"
##test yes/no have mysqld/mariadb progress
ps -ef|grep -w mysqld|grep -v "grep" &> /dev/null
if [ $? -eq 0 ];then
	mysqlbasedir=`ps -ef|grep -w "mysqld"|grep -v "grep"|awk '{print $9}'|tr -d '\-\-'`
  mysqldatadir=`ps -ef|grep -w "mysqld"|grep -v "grep"|awk '{print $10}'|tr -d '\-\-'`
fi
rpm -qa | grep mariadb* &> /dev/null
if [ $? -eq 0 ];then
    yum remove mariadb* -y
fi
ls /etc/my.cnf &> /dev/null
if [ $? -eq 0 ];then
    mv /etc/my.cnf /etc/my.cnf.bak
fi
ls /etc/init.d/mysql &> /dev/null
tar zxvf $mysql_package
cd $mysql_SRC
echo "start cmake..."
cmake -DCMAKE_INSTALL_PREFIX=$mysql_dir -DMYSQL_UNIX_ADDR=$mysql_dir/mysql.sock -DSYSCONFDIR=$mysql_dir/etc -DSYSTEMD_PID_DIR=$mysql_dir -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=$mysql_dir/data -DWITH_BOOST=boost -DWITH_SYSTEMD=1 > $log_dir/configure_mysql.log
sleep 1
echo "start make && make install..."
make && make install  
sleep 2
chown -R mysql.mysql $mysql_dir/
cd $mysql_dir/
echo '######create my.cnf######'
if [ ! -s my.cnf ];then
cat >> my.cnf << EOF
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
default-character-set=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
else
continue
fi
chown mysql.mysql my.cnf
cp $mysql_dir/support-files/mysql.server  /etc/init.d/mysqld
chmod +x  /etc/init.d/mysqld
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
rm -rf $mysql_dir/data/*
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld
ps -ef|grep mysql
systemctl status mysqld
echo '######mysql is install completed done.######'
}
init
sleep 1
mysql_install

该脚本执行方式如下:
下载mysql 5.7的安装包,地址如下:
https://download.csdn.net/download/hotkoko/12410040

下载之后,传到服务器的家目录下
# scp mysql-boost-5.7.29.tar.gz root@10.10.1.2:/home
# vi /home/mysql.sh
将脚本内容输入到mysql.sh文件中
# sh mysql.sh
# systemctl status mysqld
在这里插入图片描述进入数据库中(默认密码为空)
# mysql -uroot -p
在这里插入图片描述为安全起见,可以通过一下命令进行修改用户密码

mysql> use mysql;
mysql> alter user ‘root’@’localhost’ identified by ‘123456’ ;
mysql> flush privileges;
mysql> exit

在安装时,尽量使用干净的环境安装,若出现报错信息:
报错信息syntax error near unexpected token `$’\r
参考博客: https://blog.csdn.net/hotkoko/article/details/106063428
报错信息CMake Error at libmysqld/cmake_install.cmake:36 (FILE): file INSTALL cannot copy file
参考博客:https://blog.csdn.net/hotkoko/article/details/105794218

如在使用过程中出现其他问题,欢迎留言评论,我再做以改进

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值