欢迎光临
我们一直在努力

源码安装MySQL-5.7.38的脚本

这是我写的一个mysql源码安装的脚本,采用菜单模式,根据提示,贴和自己的环境,进行下载。反复修改,运行无误,分享出来,脚本如下:

#!/bin/bash # #Author: chenjiao color_red="echo -e \033[31m" color_green="echo -e \033[32m" colorEnd="\033[0m" menu(){ cat << EOF 1 已有源码,直接编译安装 2 下载源码,直接编译安装 3 清除环境(慎用) 4 安装编译所需工具 5 初始化生成密码 q 正常退出 EOF read -p "请输入选项: " choose } clear_env (){ yum remove -y mariadb* mysql* &amp;> /dev/null find / -iname "*mysql*" |xargs rm -rf setenforce 0 &> /dev/null sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config systemctl disable --now firewalld id mysql &> /dev/null && userdel -r mysql 2> /dev/null useradd -r -s /sbin/nologin -M mysql &> /dev/null rm -rf /usr/local/mysql/ mkdir /usr/local/mysql/ $color_green已删除原有数据库和mysql文件,已关闭selinux和firewalld,已新建mysql用户和/usr/local/mysql文件夹$colorEnd } install_tools (){ yum install -y ncurses-devel cmake gcc perl-Data-Dumper gcc-c++ git openssl-devel make > /dev/null && $color_green编译工具已安装...$colorEnd || $color_red安装工具失败,请检查网络或yum$colorEnd } mysql_source1 (){ read -p "请输入你的源码包地址和名称:" mysql_pkg mv $mysql_pkg /usr/local/mysql/mysql.tar.gz &> /dev/null && $color_green检测到源码包准备开始编译...$colorEnd || $color_red未找到源码,请检查重来...$colorEnd } mysql_source2 (){ wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.38.tar.gz --no-check-certificate -O /usr/local/mysql/mysql.tar.gz } code_install (){ tar xf /usr/local/mysql/mysql.tar.gz -C /usr/local/mysql/ cd /usr/local/mysql/mysql-5.7.38/ cmake . \ -DWITH_BOOST=boost/boost_1_59_0/ \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DINSTALL_MANDIR=/usr/share/man \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 $color_greencmake完成,准备make...$colorEnd && make install } init_mysql (){ cd /usr/local/mysql && mkdir mysql-files && chown -R mysql.mysql /usr/local/mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2>&1 | awk '/temporary password is generated/{print $NF}' # 这里将初始化的输出转化为标准输出再用awk之间截取出密码 /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data } while true;do menu case $choose in 1) mysql_source1 code_install;; 2) mysql_source2 code_install;; 3) clear_env;; 4) install_tools;; 5) init_mysql;; q) $color_green正常退出...$colorEnd && exit;; *) $color_red输入有误,请检查重来...$colorEnd ;; esac done 

注:初始化mysql时候,初始密码会出现在屏幕中

以下是引用云计算机磊哥一些话:

{源码安装
与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL
所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:
a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。

在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长}

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《源码安装MySQL-5.7.38的脚本》
文章链接:https://www.456zj.com/23853.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址