准备工作

MySQL 该版本下载地址:

https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

mysql_install-v1.0.sh脚本如下:

#!/bin/bash

# MySQL 安装日志信息
log=/var/log/mysql_install.log
# MySQL压缩包路径
MySQLPath=/root/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
# sql 文件
sqlfile=/root/test.sql # 卸载系统⾃带的MARIADB
rpm -qa|grep mariadb |xargs yum remove -y > /dev/null # 解压MYSQL安装包
echo '===================================='
echo 'Unzip....'
tar -zxf $MySQLPath -C /usr/local/
mv /usr/local/mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
if [ $? -ne 0 ];then
echo 'MySQL unzip failed!!!'
exit
else
echo '===================================='
echo 'Unpack the success!'
fi # 创建MYSQL⽤户和⽤户组
groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
echo '===================================='
echo 'User created successfully!' # MYSQL的配置⽂件
cat > /etc/my.cnf << EOF
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
EOF
if [ $? -ne 0 ];then
echo 'Failed to write the my.cnf configuration file!!!'
exit
else
echo '===================================='
echo 'my.cnf configuration success!'
echo '===================================='
fi # 创建 /var/lib/mysql ⽬录,并修改权限
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql # 开始安装 MYSQL
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2>&1 | tee $log # 获取 root 初始密码
InitialPassword=`tail -1 $log |awk '{print $NF}'` # 复制启动脚本到资源⽬录,并修改 basedir 和 datadir 为对应⽬录
cp ./support-files/mysql.server /etc/init.d/mysqld
sed -i '46s/basedir=/basedir=\/usr\/local\/mysql/g' /etc/init.d/mysqld
sed -i '47s/datadir=/datadir=\/usr\/local\/mysql\/data/g' /etc/init.d/mysqld
if [ $? -ne 0 ];then
echo 'Failed to replace /etc/init.d/mysqld!!!'
exit
else
echo '===================================='
echo '/etc/init.d/mysqld successfully modified!'
echo '===================================='
fi # 设置MYSQL系统服务并开启⾃启
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld # 启动MYSQLD
service mysqld restart # 检查 MySQL 服务是否启动成功
netstat -ntlp | grep 3306
if [ $? -ne 0 ];then
echo 'MySQL Boot failure!!!'
exit
else
echo '===================================='
echo 'start MySQL successfully!'
fi # 将 MYSQL 的 BIN ⽬录加⼊ PATH 环境变量
echo "export PATH=\$PATH:/usr/local/mysql/bin" >> ~/.bash_profile
source ~/.bash_profile if [ $? -ne 0 ];then
echo 'Variable write failed!!!'
exit
else
echo '===================================='
echo 'Variable write successful!'
echo '===================================='
fi # 登陆MYSQL,并执行 SQL 语句
mysql -uroot -p"$InitialPassword" --connect-expired-password < $sqlfile 2> /dev/null if [ $? -ne 0 ];then
echo 'fail to perform MySQL operation!!!'
exit
else
echo '===================================='
echo 'All operations were successful and can be connected through Navicat!!!'
echo '===================================='
fi

test.sql文件内容如下:

alter user user() identified by "123456";
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

第一、修改 root 密码;

第二、设置远程主机登录,可以通过Navicat来登录。

执行脚本

这里需要注意的是不要使用 ./mysql_install-v1.0.sh方式来执行,否则系统环境变量执行完脚本之后不生效;

需要使用source mysql_install-v1.0.sh来执行脚本才可以。

使用修改后的密码登录测试

Navicat 连接测试

后续还会继续更新其他应用一键安装脚本,欢迎关注我哦!!!

Shell 脚本之 MySQL 一键安装及基本配置(几分钟搞定)的更多相关文章

  1. 使用 shell 脚本实现 LANMP 一键安装

    使用 shell 脚本来实现 LANMP 系统的一键安装.使用的操作系统是 CentOS 6 ,不区分 32 位和 64 位,要求机器可以连通互联网.支持 LAMP 和 LNMP ,MySQL 支持 ...

  2. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  3. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  4. shell脚本操作mysql数据库

    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql  -hhostname -Pport -uusername -pp ...

  5. shell脚本操作mysql库

    shell脚本操作mysql数据库-e参数执行各种sql(指定到处编码--default-character-set=utf8 -s,去掉第一行的字段名称信息-N) 2011-05-11 18:18: ...

  6. shell脚本修复MySQL主从同步

    发布:thebaby   来源:net     [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...

  7. shell脚本获取mysql插入数据自增长id的值

    shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...

  8. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  9. CENTOS --5分钟搞定Nginx安装的教程

    1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...

随机推荐

  1. 4. springmvc底层原理2

    Spring mvc 是子容器 Spring 是 父容器 =================================================================== pub ...

  2. HTTP状态 500 - 内部服务器错误之Could not open ServletContext resource [/db.properties]或者 [/mybatis.xml]

    报错原因是因为找不到db.properties或者mybatis.xml,但是我明明写了有.找了一下,才发现spring-dao.xml里面这两个配置文件地址有问题 Maven项目,applicati ...

  3. oracle实现通过logminer实现日志抓取分析

    场景:现场库到前置库. 思考:使用触发器? 1.侵入性解决方案 2.需要时各种配置,不需要时又是各种配置 Change Data Capture:捕捉变化的数据,通过日志监测并捕获数据库的变动(包括数 ...

  4. Lua 业务 脚本

    Lua 脚本 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice ...

  5. Java读取SQL server数据库

    要打开SQL server 的三个服务,然后再执行代码. package com.sql; import java.sql.SQLException; import java.sql.Statemen ...

  6. anaconda同时集成Python2 和 Python3

    参考帖子,亲测有效: 利用anaconda同时使用python2和python3的方法 注意:最后一步是再对应的python环境中输入:conda install anaconda

  7. Django(55)GenericAPIView源码分析

    源码分析 GenericAPIView继承自APIView,也就是在APIView基础上再做了一层封装,源码如下: class GenericAPIView(views.APIView): query ...

  8. Spring Cloud系列(四):断路器Hystrix

    上一篇介绍了负载均衡的配置方法,做负载均衡是为了保证高可用性,但是有时候服务提供者挂掉了,比如服务A调用了服务B,服务B又调用了服务C,然后有一天服务C的所有节点都挂掉了,这时服务B就会因为C异常而在 ...

  9. P1831 杠杆数(数位Dp)

    题目描述 如果把一个数的某一位当成支点,且左边的数字到这个点的力矩和等于右边的数字到这个点的力矩和,那么这个数就可以被叫成杠杆数. 比如$4139$就是杠杆数,把3当成支点,我们有这样的等式:$4 \ ...

  10. 基于redis实现的四种常见的限流策略

    引言 在web开发中功能是基石,除了功能以外运维和防护就是重头菜了.因为在网站运行期间可能会因为突然的访问量导致业务异常.也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制.俗称的QPS也是对 ...