CentOS7源码mysql-5.7.30自动安装脚本(亲测)
2020-07-15 05:57
260 查看
mysql-5.7.30源码自动安装部署脚本
脚本部署环境:
[root@shell ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@shell ~]# uname -a Linux shell 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
mysql安装目录:/usr/local/mysql5.7
mysql数据目录:/data/mysql5.7
mysql日志、pid、socket文件:/data/mysql5.7
mysql采用默认端口:port 3306
自动安装脚本:
#!/bin/bash #written by rookie # 2020-07-03-17:06:00 ################################ echo "安装基本工具" yum install -y vim wget curl tar echo "国内ali源、epel源" wget -O /etc/yum.repos.d/CentOS-aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache echo "解决mysql依赖" yum install gcc gcc-c++ cmake bison ncurses ncurses-devel libaio git openssl openssl-devel -y echo "安装源码boost" cd /usr/src/ wget -c http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz tar -zxf boost_1_59_0.tar.gz mv boost_1_59_0 /usr/local/boost echo "下载源码mysql" cd /usr/src/ wget -c http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.30.tar.gz tar -zxf mysql-5.7.30.tar.gz echo "预编译" cd /usr/src/mysql-5.7.30 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7 \ -DMYSQL_UNIX_ADDR=/data/mysql5.7/mysql.sock \ -DMYSQL_DATADIR=/data/mysql5.7 \ -DSYSCONFDIR=/usr/local/mysql5.7 \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EXTRA_CHARSETS=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DWITH_BIG_TABLES=1 \ -DWITH_DEBUG=0 \ -DENABLE_DTRACE=0 \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/boost echo $? echo "编译" make -j 2 echo $? echo "安装" make install echo $? echo "初始登录用户" useradd -r -s /sbin/nologin mysql echo "数据目录授权" mkdir -p /data/mysql5.7/ chown -R mysql. /data/mysql5.7 echo "拷贝源码目录的脚本文件" cd /usr/src/mysql-5.7.30 cp support-files/mysql.server /etc/init.d/mysqld5.7 chmod +x /etc/init.d/mysqld5.7 #mysql优先/etc/my.cnf>/etc/mysql/my.cnf>PREFIX/my.cnf echo "创建my.cnf配置文件" cat >/usr/local/mysql5.7/my.cnf<<EOF [mysqld] basedir=/usr/local/mysql5.7/ datadir=/data/mysql5.7/ port=3306 pid-file=/data/mysql5.7/mysql.pid socket=/data/mysql5.7/mysql.sock [mysqld_safe] log-error=/data/mysql5.7/mysql.log EOF echo "初始化数据库,mysql.log记录初始化信息" #注意:拷贝时注意初始化命令转义符位置避免缺少参数,否则初始化后数据目录内容不全; /usr/local/mysql5.7/bin/mysqld --initialize --user=mysql --datadir=/data/mysql5.7 \ --basedir=/usr/local/mysql5.7/ --log-error=/data/mysql5.7/mysql.log echo "启动停止mysql数据库" #也可以通过service启停服务; /etc/init.d/mysqld5.7 start echo "添加sysv风格mysql服务自启" #注意添加服务与/etc/init.d/mysqld5.7对应; #也可以通过拷贝修改/usr/lib/systemd/system/服务生成systemd风格服务; chkconfig --add mysqld5.7 chkconfig --level 35 mysqld5.7 on #查看mysqld服务; netstat -antp | grep mysqld if(( $?==0 ));then echo "mysqld启动成功";else echo "mysqld启动失败";fi ps -ef | grep mysqld MYSQL_INI_PWD=$(awk '/temporary password/{print $NF}' /data/mysql5.7/mysql.log) /usr/local/mysql5.7/bin/mysql -uroot -p$MYSQL_INI_PWD
脚本测试:
通过sh -x scripts命令显示当前执行的命令和参数,可用于排错;
脚本测试成功会使用root及数据库初始化临时生成的密码登录mysql;
sh -x autosrc_install_mysql_v1.sh + netstat -antp + grep mysqld tcp6 0 0 :::3306 :::* LISTEN 31662/mysqld + (( 0==0 )) + echo $'mysqld\345\220\257\345\212\250\346\210\220\345\212\237' mysqld启动成功 + ps -ef + grep mysqld root 31432 1 0 14:57 pts/1 00:00:00 /bin/sh /usr/local/mysql5.7//bin/mysqld_safe --datadir=/data/mysql5.7/ --pid-file=/data/mysql5.7/mysql.pid mysql 31662 31432 6 14:57 pts/1 00:00:00 /usr/local/mysql5.7/bin/mysqld --basedir=/usr/local/mysql5.7/ --datadir=/data/mysql5.7 --plugin-dir=/usr/local/mysql5.7//lib/plugin --user=mysql --log-error=/data/mysql5.7/mysql.log --pid-file=/data/mysql5.7/mysql.pid --socket=/data/mysql5.7/mysql.sock --port=3306 root 31733 10863 0 14:57 pts/1 00:00:00 grep mysqld + /usr/local/mysql5.7/bin/mysql -uroot -pRA9yULbP_lpq mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.30 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
相关文章推荐
- Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
- CentOS7.5源码shell脚本自动安装MySQL5.7.28多实例
- shell脚本-自动安装mysql源码包
- CentOS7 shell脚本一键安装 php mysql redis nginx 源码安装
- mysql5.6源码自动安装脚本
- Centos5.8上面用Shell脚本一键安装mysql5.5.25源码包
- Centos 7自动源码编译安装 Nginx-1.18..0脚本
- Linux(centos) 编译安装 Mysql 后配置开机自动启动
- RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载
- CentOS-5.5 源码包式安装Mysql-5.5.32
- CentOS5.6下使用cmake编译MySQL5.5.13源码和安装笔录 推荐
- CentOS下用源码安装mysql
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- CentOS 6.3下MySQL 5.6源码安装
- CentOS源码编译安装MySQL 5.5.15
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- CentOS6.4编译源码安装mysql-5.0.41
- Centos下Cmake源码编译安装MySQL
- 使用Kickstart安装脚本全自动快速部署CentOS 6.0
- CentOS python2.7 自动安装脚本