Shell脚本一键部署——源码编译安装MySQL及自动补全工具
Shell脚本一键部署——源码编译安装MySQL及自动补全工具
编译安装MySQL
1、软件包
Mysql安装包
- 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者. 执行脚本,等脚本执行完成,即可使用mysql -u root -p点击回车即可进入。
2、MySQL及自动补全工具一键部署脚本(使用source或./执行脚本!)
- #!/bin/bash
- echo -e "----正在验证当前为仅主机还是NAT模式----"
- ping -c 2 -w 2 www.baidu.com &> /dev/null
- if [ $? -eq 0 ];then echo -e "检测当前为NAT模式,为您配置在线yum源"
- mkdir -p /etc/yum.repos.d/repo.bak
- mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null
- wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
- yum clean all &> /dev/null
- yum list &> /dev/null
- echo -e "在线源已配置完成"
- else
- echo -e "检测当前为仅主机模式,为您配置本地yum源"
- mount /dev/sr0 /mnt &> /dev/null
- cd /etc/yum.repos.d/
- mkdir -p /etc/yum.repos.d/repo.bak
- mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null
- echo '[local]
- name=local
- baseurl=file:///mnt
- enabled=1
- gpgcheck=0' > /etc/yum.repos.d/local.repo
- yum clean all &> /dev/null
- yum makecache &> /dev/null
- df -h | grep "/mnt"
- if [ $? -ne 0 ];then
- echo -e "检测当前为仅主机模式,但光盘未挂载!"
- else
- echo -e "本地yum源已配置完成"
- fi
- fi
- #编译安装mysqld服务
- #将安装mysql所需软件包传到/opt目录下,并解压
- cd /opt
- tar zxvf mysql-5.7.17.tar.gz
- tar zxvf boost_1_59_0.tar.gz
- #安装环境依赖包
- yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
- if [ $? -eq 0 ];then
- echo -e "环境依赖包安装完成"
- fi
- #配置软件模块
- mv boost_1_59_0 /usr/local/boost
- cd /opt/mysql-5.7.17/
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
- -DSYSCONFDIR=/etc \
- -DSYSTEMD_PID_DIR=/usr/local/mysql \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DWITH_EXTRA_CHARSETS=all \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
- -DMYSQL_DATADIR=/usr/local/mysql/data \
- -DWITH_BOOST=/usr/local/boost \
- -DWITH_SYSTEMD=1
- if [ $? -eq 0 ];then
- echo "模块配置完成"
- fi
- #编译安装
- make -j4 && make install
- if [ $? -eq 0 ];then
- echo "编译安装完成"
- fi
- #创建mysql用户
- useradd -M -s /sbin/nologin mysql
- #修改mysql配置文件
- echo '[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
- auto-rehash
- [mysqld]
- user = mysql
- basedir=/usr/local/mysql
- datadir=/usr/local/mysql/data
- port = 3306
- character-set-server=utf8
- pid-file = /usr/local/mysql/mysqld.pid
- socket=/usr/local/mysql/mysql.sock
- bind-address = 0.0.0.0
- skip-name-resolve
- max_connections=2048
- default-storage-engine=INNODB
- max_allowed_packet=16M
- server-id = 1
- sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES' > /etc/my.cnf
- #更改mysql安装目录和配置文件的属主属组
- chown -R mysql:mysql /usr/local/mysql/
- chown mysql:mysql /etc/my.cnf
- #设置路径环境变量
- echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
- source /etc/profile
- #初始化数据库
- cd /usr/local/mysql/bin
- ./mysqld \
- --initialize-insecure \
- --user=mysql \
- --basedir=/usr/local/mysql \
- --datadir=/usr/local/mysql/data
- #添加mysql系统服务
- cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
- systemctl daemon-reload
- systemctl start mysqld.service
- systemctl enable mysqld
- netstat -anpt | grep 3306
- rpm -q expect
- if [ $? -eq 1 ];then
- yum -y install expect
- fi
- source /etc/profile
- #修改mysql登录密码
- /usr/bin/expect <<EOF
- spawn mysqladmin -u root -p password "123456"
- expect "Enter password:"
- send "\r"
- expect eof
- EOF
- #授权远程登录
- /usr/bin/expect <<EOF
- spawn mysql -u root -p
- expect "Enter password:" {send "123456\r"}
- expect "mysql>" {send "grant all privileges on *.* to 'root'@'%' identified by '123456';\r"}
- expect "mysql>" {send "show databases;\r"}
- expect "mysql>" {send "quit\r"}
- expect eof
- EOF
- source /etc/profile
- echo "----mysql安装完成----"
- #在线源安装
- yum -y install epel-release
- yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-develdb4 -devel libpcap-devel xz-devel gcc
- wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
- mkdir ~/.pip/
- cat > ~/.pip/pip.conf <<EOF
- [global]
- index-url = https://mirrors.aliyun.com/pypi/simple/
- [install]
- trusted-host=mirrors.aliyun.com
- EOF
- yum -y install libffi-devel zlib* python-devel openssl-devel
- tar -zxvf Python-3.9.0.tgz
- cd Python-3.9.0/
- ./configure --prefix=/usr/local/python --with-ssl
- make && make install
- ln -s /usr/local/python/bin/python3 /usr/bin/
- echo 'export PATH=/usr/local/python/bin:$PATH' >> /etc/profile
- source /etc/profile
- pip3 install mycli
- if [ $? -eq 0 ];then
- echo -e "-----mycli自动补全功能已经安装完成-----"
- fi
- #mycli -u root -p <密码>
Shell脚本一键部署——源码编译安装MySQL及自动补全工具的更多相关文章
- CentOS源码编译安装MySQL 5.5.15
CentOS源码编译安装MySQL 5.5.15 文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install g ...
- CentOS 6.6 下源码编译安装MySQL 5.7.5
版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- 源码编译安装 MySQL 5.5.x 实践(转)
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- 总结源码编译安装mysql
最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...
- 源码编译安装MySQL 5.7.9
安装CentOS 6.3 配置yum:[root@hank-yoon ~]# cd /etc/yum.repos.d/ [root@hank-yoon yum.repos.d]# mkdir a [r ...
- 树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库
前言 树莓派使用数据库时,优先选择sqlite数据库,但是sqlite是文件数据库同时仅针对于单用户的情况,考虑到多用户的情况,在树莓派上部署安装mysql服务,通过读写锁事务等使用,可以实现多进 ...
- CentOS 7 源码编译安装MySQL 5.7.14
一.添加用户和组 1. 进入root: su 2. 添加组: groupadd mysql 3. 添加用户: useradd -r -g mysql -s /bin/false mysql 二.安装 ...
- 源码编译安装mysql
1 概述 首先来看下mysql的下载地址: http://ftp.plusline.de/mysql/Downloads/ 这里有mysql的各种版本 操作系统:CentOS releas ...
随机推荐
- 关于C语言中对数字的扩展和缩短
关于对数字的扩展:如果需要在不改变他的类型的情况下去扩展一个数字 有符号数字: 如果最高位为0---向左按位复制0 如果最高位为1---向左按位复制1 无符号数字:向左按位复制0即可 对于数字的缩短: ...
- java中 字符串的构造方法和直接创建
java.long.String类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现.(程序当中所有的双引号字符串,都是String类的对象[没 ...
- 「Leetcode-算法_Easy461」通过「简单」题目学习位运算
Easy 461.汉明距离 因为原题目翻译效果不佳,这里是笔者自己的理解. 输入两个二进制数 x.y, 输出将 y 变为 x 所需改变的二进制位数,成为汉明距离. 注意: 0 ≤ x, y < ...
- Go interface 原理剖析--类型转换
hi, 大家好,我是 haohognfan. 可能你看过的 interface 剖析的文章比较多了,这些文章基本都是从汇编角度分析类型转换或者动态转发.不过随着 Go 版本升级,对应的 Go 汇编也发 ...
- kubernetes/k8s CRI分析-kubelet删除pod分析
关联博客<kubernetes/k8s CRI 分析-容器运行时接口分析> <kubernetes/k8s CRI分析-kubelet创建pod分析> 之前的博文先对 CRI ...
- windows和linux传输小技巧——FTP服务
目录 一.FTP简介 二.匿名用户访问设置 三.设置本地用户验证访问ftp 3.1.修改匿名用户.本地用户登录的默认根目录 四.使用user_list列表 一.FTP简介 FTP服务--用来传输文件的 ...
- Nginx配置websocket的安全协议wss
//nginx配置wss访问方式 map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream webso ...
- HTTP和HTTPS是什么 二者区别是什么
HTTP简介 HTTP(超文本传输协议)是网络上最为广泛的传输协议,被用于在web浏览器和网站服务器之间的传输协议.HTTP是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给 ...
- websocket在慕课网中的应用
网上资料都是介绍概念,我们来看看实际网站怎么使用websocket的吧.限于自身水平解读并不深入,慕课网上的websocket某些字段不知何用. 是什么 是一种应用层协议,有html5而推出,是一种全 ...
- flutter学习资料汇总
1.https://github.com/chinabrant/flutter_study 2.https://github.com/zhujian1989/flutter_study 3.https ...