mysql5.7 在Centeros 6 下自动安装的shell脚本
概述:
此脚本实现了在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脚本的更多相关文章
- CentOS 下运维自动化 Shell 脚本之 expect
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...
- linux系统下重启tomcat的shell脚本
linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...
- top 自动执行的shell脚本中,使用top -n 1 > log.txt, 上电自动执行,文件无输出
. 自动执行的shell脚本中,使用top -n > log.txt, 上电自动执行,文件无输出,使用一下命令解决: //usr/bin/top -d -n -b > log.txt 如果 ...
- mysql-5.7.xx在lcentos7下的安装以及mysql在windows以及linux上的性能差异
前言: 在centos上安装mysql,整整折腾了将近一天,因为是第一次安装,的确是踩了不少坑,这里详细记录下来,方便各位有同样需求的小伙伴参考. 该选择什么版本? mysql5.7有很多小版本,但是 ...
- 一个简单的linux下设置定时执行shell脚本的示例
很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command ...
- Ubuntu 设定壁纸自动切换的shell脚本
升级到Ubuntu14.04后,感觉bug的确比12.04少多了.顶部任务栏支持半透明效果,所以整个桌面也看上去漂亮了很多.这样的桌面也是值得瞎捣鼓一下的,想到换壁纸,但是没找到设定动态更换壁纸的选项 ...
- Centos下使用php调用shell脚本
我们在实际项目中或许会遇到php调用shell脚本的需求.下面就用简单案例在Centos环境下实践 准备 查看php.ini中配置是否打开安全模式 //php.ini safe_mode = //这个 ...
- mysql5.5.28在Linux下的安装
1. 下载mysql 在http://dev.mysql.com/downloads/mysql/ 官网上下载mysql-5.5.28-linux2.6-i686.tar.gz. 2. ...
- Java web项目在linux环境下自动编译和部署脚本
自动编译脚本 build.sh, 放置在项目根目录下. #!/bin/bash # check args # init path CURRPATH=`pwd` LIBDIR="$CURRPA ...
随机推荐
- hdoj1027【STL系列。。。?】
这个太夸张了...感觉是有别的方法,但是觉得再说吧...以后碰到全排列应该也是用STL嗨的吧...嗯,,,就是这样的....?再说,再说.. 还有杭电支持c艹11,很棒 #include <bi ...
- 安装elasticsearch-head
直接安装chrome插件,用npm老出错,shit 再说吧 使用插件连接的时候反而没有出错,后续如果出错 , 可以配置 elasticsearch下config下的y 在新的电脑上使用发现格式不对,比 ...
- js锚点
锚点,在地址栏http://localhost:8000/Demo1/js锚点.html#a 跳转到指定位置可以是 <a>标签的name 也可以是标签的id. 曾经看到有锚点的页面,但 ...
- C. Coconut(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛)
额,只是一道签到题,emmm直接代码: #include <cstdio> #include <cstring> #include <algorithm> usin ...
- subline应用之python
一交互式命令操作快捷键:在安装SublimeREPL插件后,CTRL+~/CTRL+B分别在命令行交互式和编译模式之间进行选择. 为SublimeREPL配置快捷键(每次运行程序必须用鼠标去点工具栏- ...
- 使用VMwaver 克隆CentOS 6.9网卡配置报错
报错信息: 克隆完成之后,使用的是NAT模式,进入系统之后有IP地址也可以ping外网,但是没有ifcfg-eth0这个文件,使用setup命令配置网卡时报以下错误: 待解决-
- 使用JS移除select的某些选项
var arrvalue = new Array("1", "3", "4", "5", "6", ...
- 2019/05/13 JAVA虚拟机堆内存调优
-Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...
- HTTP协议 处理流程
我们平时在浏览网页的时候都是使用浏览器,输入你要的网址后回车,就会显示出我们所想要的内容,看似这个简单的用户操作行为的背后,Web的工作原理是怎样的呢?到底隐藏了些什么呢? 对于传统的上网流程,系统它 ...
- mac及windows下安装ss实现***
官网下载shadowsock(mac/windows都是下面地址,页面会根据当前系统自动判断所下载的包) https://sourceforge.net/projects/shadowsocksgui ...