概述:

此脚本实现了在Centeros 6版本下自动安装mysql5.7到目录 /opt/mysql-5.7*并且做软连接映射到 /usr/local/mysql,自动修改root密码为:12345678,开启root远程访问账户,此脚本yum源搭建部分请参考:Centeros 下自动区分release,连接到远程FTP yum源

讨论:

刚开始接触shell,感觉很不规范,没有进行模块区分,没有设置动态变量如密码,用户,安装目录,日志目录等等,后边会完善

脚本原文:

#!/bin/bash
rpm -qa | grep mysql | xargs rpm -e
# CenterOS config yum
osv=`rpm -q --qf %{version} centos-release`
echo "您的centeros release 版本:$osv"
echo -e "\n"

if [[ $osv -eq 6 || $osv -eq 7 ]]
then
#config yum
rm -rf /etc/yum.repos.d/*
echo "[CenterOS-source]
name=Linux "'$releasever'" - "'$basearch'" - Source
baseurl=ftp://10.0.0.1/pub/cos$osv
enabled=1
gpgcheck=0" > /etc/yum.repos.d/rhel-source.repo
yum makecache

if [ $? -gt 0 ]
then
echo "执行错误"
break
fi

echo "执行成功"
break

else
echo -e "此脚本不适配您的操作系统\n"

fi

#ulimit
ulimit -n 65535
sed -i "/soft nofile 65535/d" /etc/security/limits.conf
sed -i "/hard nofile 65535/d" /etc/security/limits.conf

echo "* soft nofile 65535
* hard nofile 65535" >> /etc/security/limits.conf

#apt-get install -y libaio*
#user and group
groupadd mysql
useradd -r -g mysql mysql
#passwd mysql

#packages
rm -rf /opt/mysql-5.7.22-linux-glibc2.12-x86_64
rm -f /usr/local/mysql/mysql-5.7.22-linux-glibc2.12-x86_64
rm -f /usr/local/mysql
cd /opt
tar zxvf $PWD/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /opt
ln -s /opt/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir /var/run/mysqld
mkdir /opt/mysql-5.7.22-linux-glibc2.12-x86_64/log
mkdir /opt/mysql-5.7.22-linux-glibc2.12-x86_64/data
chown -R mysql:mysql /var/run/mysqld
chown -R mysql:mysql /opt/mysql-5.7.22-linux-glibc2.12-x86_64
#install database
cd /usr/local/mysql/
echo "" >/usr/local/mysql/log/error.log
chown -R mysql:mysql /usr/local/mysql
chown mysql:mysql /usr/local/mysql/log/error.log

sed -i "/#mysql config/d" /etc/profile
sed -i "\/export\ PATH=\$PATH\:\/usr\/local\/mysql\/bin/d" /etc/profile
echo "#mysql config
export PATH="'$PATH'":/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
sed -i "/#mysql config/d" /root/.bashrc
sed -i "\/export\ PATH=\$PATH\:\/usr\/local\/mysql\/bin/d" /root/.bashrc
echo "#mysql config
export PATH="'$PATH'":/usr/local/mysql/bin" >> /root/.bashrc
source /root/.bashrc
mv -f /etc/my.cnf /etc/my.cnf.bak
echo "[client]
port= 3306
[mysqld]
#skip-grant-tables
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
general_log=0
general_log_file=/usr/local/mysql/log/query.log
port= 3306
lower_case_table_names=1
#skip-name-resolve

character_set_server=utf8

default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=2000

key_buffer_size = 20G
myisam_sort_buffer_size = 1280M
myisam_max_sort_file_size = 20G
myisam_repair_threads = 1

query_cache_size=5073741824
query_cache_type=1
slow-query-log=0
slow_query_log_file=/usr/local/mysql/log/slow_query.log
long_query_time=5
log-error=/usr/local/mysql/log/error.log

table_open_cache=2000

thread_cache_size=300

tmp_table_size=246M
max_heap_table_size=246M

thread_stack = 192k
key_buffer_size=512M
read_buffer_size=4M
read_rnd_buffer_size=32M

log-bin=mysql-bin
server-id=1

innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=16M
innodb_buffer_pool_size=50G
innodb_thread_concurrency=128
innodb_autoextend_increment=1000
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_log_file_size = 1G
innodb_log_files_in_group = 3

innodb_old_blocks_time=1000
innodb_open_files=1000
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0

back_log=512
flush_time=0
join_buffer_size=128M
max_allowed_packet=1024M
max_connect_errors=3000
open_files_limit=5000

sort_buffer_size=32M
table_definition_cache=1400
binlog_row_event_max_size=8K

sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000

bulk_insert_buffer_size = 64M
log_timestamps=SYSTEM
log_error_verbosity=2" > /etc/my.cnf

mv -f /etc/init.d/mysqld /etc/init.d/mysqld.bak
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#vi /etc/init.d/mysqld
# 46行 basedir=/usr/local/mysql datadir=/usr/local/mysql/data
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
pkill -9 mysql
rm -rf /usr/local/mysql/data/*
echo "" > /usr/local/mysql/log/error.log
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#sleep 1
/etc/init.d/mysqld start
ps -ef | grep mysql
#defaultmysqlpwd=`grep 'A temporary password' /usr/local/mysql/log/error.log | awk -F"root@localhost: " '{ print $2}' `
#echo $defaultmysqlpwd
sleep 10
ps -ef | grep mysql
mysqladmin -uroot password 12345678
mysql -uroot -p12345678 <<EOF
grant all privileges on *.* to root@'%' identified by '12345678';flush privileges;
EOF
mysql -uroot -p12345678

mysql5.7 在Centeros 6 下自动安装的shell脚本的更多相关文章

  1. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  2. linux系统下重启tomcat的shell脚本

    linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...

  3. top 自动执行的shell脚本中,使用top -n 1 > log.txt, 上电自动执行,文件无输出

    . 自动执行的shell脚本中,使用top -n > log.txt, 上电自动执行,文件无输出,使用一下命令解决: //usr/bin/top -d -n -b > log.txt 如果 ...

  4. mysql-5.7.xx在lcentos7下的安装以及mysql在windows以及linux上的性能差异

    前言: 在centos上安装mysql,整整折腾了将近一天,因为是第一次安装,的确是踩了不少坑,这里详细记录下来,方便各位有同样需求的小伙伴参考. 该选择什么版本? mysql5.7有很多小版本,但是 ...

  5. 一个简单的linux下设置定时执行shell脚本的示例

    很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command ...

  6. Ubuntu 设定壁纸自动切换的shell脚本

    升级到Ubuntu14.04后,感觉bug的确比12.04少多了.顶部任务栏支持半透明效果,所以整个桌面也看上去漂亮了很多.这样的桌面也是值得瞎捣鼓一下的,想到换壁纸,但是没找到设定动态更换壁纸的选项 ...

  7. Centos下使用php调用shell脚本

    我们在实际项目中或许会遇到php调用shell脚本的需求.下面就用简单案例在Centos环境下实践 准备 查看php.ini中配置是否打开安全模式 //php.ini safe_mode = //这个 ...

  8. mysql5.5.28在Linux下的安装

    1.       下载mysql 在http://dev.mysql.com/downloads/mysql/ 官网上下载mysql-5.5.28-linux2.6-i686.tar.gz. 2.   ...

  9. Java web项目在linux环境下自动编译和部署脚本

    自动编译脚本 build.sh, 放置在项目根目录下. #!/bin/bash # check args # init path CURRPATH=`pwd` LIBDIR="$CURRPA ...

随机推荐

  1. (构造)51NOD 1080 两个数的平方和

    给出一个整数N,将N表示为2个整数i与j的平方之和(i <= j),如果有多种表示,按照i的递增序输出. 例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2(注:3^ ...

  2. python之类的相关名词解释

    变量:在类里面定义的变量,不必实例化即可调用 实例变量:在类里面定义的变量,必须实例化之后才可以调用 比如: 属性方法:调用时看起来像是一个变量,方法没有入参,可以变成一个属性方法 在方法上添加@pr ...

  3. 一个Nice的生活主题博客模板

    https://www.bitcron.com/ https://api.bitcron.com/ https://chopstack.com/

  4. UVA - 1349 D - Optimal Bus Route Design

    4. D - Optimal Bus Route Design 题意:给出n(n<=100)个点的带权有向图,找出若干个有向圈,每个点恰好属于一个有向圈.要求权和尽量小. 注意即使(u,v)和( ...

  5. string类常用方法3

  6. Backbone学习记录(4)

    事件绑定  on()方法 调用格式:object.on(event, callback, [context])"change" — 当attributes变化时"chan ...

  7. B. Code For 1 一个类似于线段树的东西

    http://codeforces.com/contest/768/problem/B 我的做法是,观察到,只有是x % 2的情况下,才有可能出现0 其他的,都是1来的,所以开始的ans应该是R - ...

  8. 迭代器———更锋利的C#代码小记(3)

    直接使用yield return关键字通过类似返回值的方式灵活地构造迭代器 public class EmployeeCollection :IEnumerable<Employee> { ...

  9. logging模块进阶

    python利用logging模块来记录日志主要涉及四个类 logger提供了应用程序可以直接使用的接口 handler将logger创建的日志提供的输出发送到指定目的地. filter起到过滤作用, ...

  10. vmware桥接模式下主机有多个网卡导致虚拟机网络不通

    桥接模式下,vmware会绑定一个物理网卡,因此有多个物理网卡时就要注意当前绑定的物理网卡.打开如下vmware菜单 可以看到VMnet0是桥接模式用的,然后他可以选择绑定一个物理网卡,注意要正确选择 ...