MySQL5.6一键部署
# 快速部署单节点MySQL脚本
# 执行方式:将MySQL包,my3302.cnf配置文件,dbtool脚本文件放到一个目录下。然后按照脚本执行就可以。配置文件提前修改好。文章最后附上my.cnf配置文件内容
# 环境:
# Linux:CentOS release 6.6 (Final)
# mysql: Percona-Server-5.6.32-rel78.0-Linux.x86_64.ssl098e.tar.gz # 下载地址 : https://www.percona.com/downloads/Percona-Server-5.6/LATEST/
# 简介:脚本中每一步都定义的函数,通过:./dbtool port cmd 格式 来调用。port:MySQL端口;cmd 每个函数的调用命令简写。例如:./dbtool 3002 sd 启动mysql.
# 大家可以根据需要在下面追加函数,定义功能。比如:mysql的启动、停止、登录。
# 该脚本提供一种思路,大家可以自己扩展
# 脚本名:dbtool
#!/bin/sh
#
PORT=$
Instance_Name="inst01" #实例名:多实例时目录层的区分标志
CMD="$2"
DB_DIR="/data/mysql" # MySQL相关目录文件,本脚本为了方便都放一起了;data和log可以放到单独的分区里
Current_dir=`pwd` INSTALL_RPM()
{
rpmlist="openssl-devel.x86_64 \
openssl098e.x86_64 \
openssl.x86_64 \
readline.x86_64 \
readline-devel.x86_64 \
crypto-utils.x86_64 \
perl-DBD-MySQL.x86_64 \
perl-IO-Socket-SSL.noarch"
echo
echo '------------------------------------------'
echo 'Install rpm :'
echo
for str in ${rpmlist};
do
rpm -qa|grep ${str%.*}>>/dev/null && echo "Installed : "${str} || \
(yum install -y ${str} >> /dev/null && echo "Installed : "${str} )
done
echo
echo '------------------------------------------'
echo
} ADD_USER()
{
echo
echo '------------------------------------------'
groupadd mysql && useradd -g mysql mysql >/dev/null
echo "id mysql :"
id mysql
echo '------------------------------------------'
} MK_DIR()
{
Dir_data="${DB_DIR}/mysqlData/${Instance_Name}"
Dir_log="${DB_DIR}/mysqlLog/${Instance_Name}"
Dir_socket="${DB_DIR}/socket"
Dir_conf="${DB_DIR}/config"
echo '--------------------------------------------'
if [ ! -d "${DB_DIR}" ];then
mkdir -pv ${DB_DIR}
fi mkdir -pv $Dir_data/{data,tmp}
mkdir -pv $Dir_log/logs
mkdir -pv $Dir_socket
mkdir -pv $Dir_conf
echo
echo '[ show dirs : ]'
ls -lh ${DB_DIR}
echo '---------------------------------------------------------'
echo
} TAR_MYSQL()
{
echo '---------------------------------------------------------'
PerconaName=`ls ${Current_dir} |grep Percona-Server`
PerconaVerson=`echo ${PerconaName}|awk -F'-' '{print $3}'|sed 's#\.##g'`
tar -xf ${PerconaName}
mv ${PerconaName%.tar*} percona${PerconaVerson}
ln -s ${Current_dir}/percona${PerconaVerson} /usr/local/mysql
echo '---------------------------------------------------------'
} MOD_CONF()
{
echo '---------------------------------------------------------'
mv ${Current_dir}/my${PORT}.cnf ${DB_DIR}/config/
ls -lh ${DB_DIR}/config/
echo '---------------------------------------------------------'
} GRANT_DIR()
{
echo '---------------------------------------------------------'
chown -R mysql.mysql ${DB_DIR}
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/
echo '---------------------------------------------------------'
} SET_PATH()
{
echo
echo '---------------------------------------------------------'
echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile
cat /etc/profile|grep '/usr/local/mysql/bin'
echo
echo '---------------------------------------------------------'
} INITIALIZE_DB()
{
echo
echo '---------------------------------------------------------'
cd /usr/local/mysql/
./scripts/mysql_install_db --defaults-file=${DB_DIR}/config/my${PORT}.cnf --user=mysql
echo '---------------------------------------------------------'
} START_DB()
{
echo '---------------------------------------------------------'
cd /usr/local/mysql
./bin/mysqld_safe --defaults-file=${DB_DIR}/config/my${PORT}.cnf --user=mysql &
sleep
echo
echo "Check :"
echo "[ps -ef|grep mysql]"
ps -ef|grep mysql
echo "[netstat -ntpl|grep mysql]"
netstat -ntpl|grep mysql echo '---------------------------------------------------------'
} FIRST_LOGIN()
{
echo '---------------------------------------------------------'
echo "Press Enter"
mysql -uroot -p -S ${DB_DIR}/socket/mysql${PORT}.sock -e"delete from mysql.user where host !='localhost' or user=''"
echo "Press Enter"
mysql -uroot -p -S ${DB_DIR}/socket/mysql${PORT}.sock -e"select user,host,password from mysql.user"
echo
echo
echo '---------------------------------------------------------'
} HELP()
{
echo "---------------------------------------------------------------"
printf "%-50s\n" "+ ToolName : dbtool "
printf "%-50s\n" "+ ToolDesc : install single mysql"
printf "%-50s\n" "+ Authors : Chris" printf "%-50s\n" "+ Help:"
printf "%-50s\n" "For example:"
printf "%-50s\n" "+ [root@monitor data]# ./dbtool 3002 in" printf "%-50s\n" "+ Parameter: "
printf "%-50s\n" "+ ir --install rpm for mysql"
printf "%-50s\n" "+ au --add user : mysql "
printf "%-50s\n" "+ md --mkdir "
printf "%-50s\n" "+ tm --tar -xf mysql.xx.tar.gz"
printf "%-50s\n" "+ mc --mv myxx.cnf to config_file"
printf "%-50s\n" "+ gd --grant to dirs"
printf "%-50s\n" "+ sp --set environment"
printf "%-50s\n" "+ in --initialization mysql"
printf "%-50s\n" "+ sd --start mysql"
printf "%-50s\n" "+ fg --first login mysql and delete unuserd users"
echo "---------------------------------------------------------------" } if [ $# -eq ];then
case $ in
'install_rpm'|'ir')
INSTALL_RPM
;;
'add_user'|'au')
ADD_USER
;;
'mk_dir'|'md')
MK_DIR
;;
'tar_mysql'|'tm')
TAR_MYSQL
;;
'mv_conf'|'mc')
MOD_CONF
;;
'grant_dir'|'gd')
GRANT_DIR
;;
'set_path'|'sp')
SET_PATH
;;
'initialization_db'|'in')
INITIALIZE_DB
;;
'start_db'|'sd')
START_DB
;;
'firstlogin'|'fg')
FIRST_LOGIN
;;
'install'|'install') # 一键部署
INSTALL_RPM
ADD_USER
MK_DIR
TAR_MYSQL
MOD_CONF
GRANT_DIR
SET_PATH
INITIALIZE_DB
START_DB
FIRST_LOGIN
;;
*)
HELP
;;
esac
else
HELP
exit
fi
附件:myxx.cnf
注意:innodb_buffer_pool需要更加实际内存情况设置
[client]
port =
socket = /data/socket/mysql3002.sock # The MySQL server
[mysqld]
server-id =
port =
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysqlData/inst01/data
tmpdir = /data/mysql/mysqlData/inst01/tmp
socket = /data/mysql/socket/mysql3002.sock
pid-file = /data/mysql/socket/mysql3002.pid
log-bin = /data/mysql/mysqlLog/inst01/logs/mysql-bin
log-error = /data/mysql/mysqlLog/inst01/err.log
slow_query_log_file =/data/mysql/mysqlLog/inst01/slow.log
binlog_format=mixed
#log_short_format
#log-slave-updates
slow_query_log
long_query_time=
wait_timeout=
interactive_timeout=
max_connections=
character_set_server=utf8
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache =
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size =
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency =
#skip-networking
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
replicate_ignore_db=mysql
replicate_ignore_db=information_schema
expire-logs-days=
skip-slave-start # InnoDB
innodb_data_home_dir = /data/mysql/mysqlData/inst01/data
innodb_log_group_home_dir = /data/mysql/mysqlLog/inst01/logs
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 5M
innodb_log_file_size = 10M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit =
innodb_lock_wait_timeout =
innodb_file_per_table [mysqldump]
quick
max_allowed_packet = 16M [mysql]
#no-auto-rehash
auto-rehash
[myisamchk]
key_buffer_size = 256K
sort_buffer_size = 256K
read_buffer = 256K
write_buffer = 256K [mysqlhotcopy]
interactive-timeout
MySQL5.6一键部署的更多相关文章
- windows一键部署java项目
windows一键部署java项目 因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址.就像安装软件一样将jdk,tomcat,mys ...
- Docker Compose 一键部署LNMP
Docker Compose 一键部署LNMP 目录结构 [root@localhost ~]# tree compose_lnmp/ compose_lnmp/ ├── docker-compose ...
- Shell脚本一键部署——源码编译安装MySQL及自动补全工具
Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...
- 一键部署mysql 无修改直接cp 执行 100% 有效
一键部署mysql 无修改直接cp 执行 100% 有效 将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成, 即可使用mysql -u root -p点击 ...
- 一键部署lnmp
一键部署lnmp 提前将nginx .mysql .php 所需安装包都放在/opt目录下 脚本启动结束时,重启一下nginx 服务,就能在火狐浏览器更新出php测试页 脚本如下:(脚本里的软件 ...
- 一键部署lamp 脚本
一键部署lamp 脚本 如下: #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #----- ...
- mac通过docker一键部署MySQL8
目录 mac通过docker一键部署MySQL8 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.克隆脚本 1.2.安装程序 1.2.1.安装程序详情 1. ...
- 如何自动化一键部署PHP项目
1.技能需求 完成自动化一键部署PHP需要:PHP(略懂),Shell(略懂),git(略懂) 2.最终效果 输入密码,回车,5~20秒后(一般一天一次持续交付,部署的代码量和sql脚本都不会很大) ...
- Ubantu16.04一键部署Cacti监控服务器
Ubantu16.04一键部署Cacti监控服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 一.查看系统环境(关于该系统的安装 ...
随机推荐
- 拦截asp.net输出流并进行处理的方法
本文实例主要实现对已经生成了HTML的页面做一些输出到客户端之前的处理. 方法的实现原理是:把Response的输出重定向到自定义的容器内,也就是我们的StringBuilder对象里,在HTML所有 ...
- webpack文档翻译
https://segmentfault.com/a/1190000007568507
- Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)
本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...
- DB水平切换要点
分区健选择 数据应该怎样拆分,依照什么纬度来拆分 节点路由 应用程序写死/客户端(TDDL,cobar-client)/中间层(cobar-server) 固定分配/动态分配/混合 分片数据均衡 某些 ...
- 74、shape 画圆 加 边框
<?xml version="1.0" encoding="utf-8"?> <!--<shape xmlns:android=&quo ...
- cxGrid 使用指南 1
1:cxgrid是应该数据关联的控件,类似dbgrid.2:一般用来查阅表信息,如果要修改的话,直接在上面编辑或添加 非常不方便通常要放几个EDit来对选中的记录进行编辑或添加记录. 因为表一般都有主 ...
- FZU1465
题目链接:传送门 题目大意:给你n个整数(可正可负),求有多少个连续的子序列的和==m(时限1S) 题目思路:前缀和+手写hash(map效率太慢,会超时) 具体做法是用一个数组sum,数组的第i位保 ...
- Jmeter - 分布式部署负载机
1. 原理图: 2.具体操作 ① 负载机 安装JDK.Jmeter[版本与Controller 调度机一致] ② 配置环境变量 ③ 负载机自定义端口号 a.进入Jmeter的bin目录,找到Jmete ...
- [UVa OJ] Longest Common Subsequence
This is the classic LCS problem. Since it only requires you to print the maximum length, the code ca ...
- jQuery Validation Engine 表单验证,自定义规则验证方法
jQuery Validation Engine 表单验证说明文档http://code.ciaoca.com/jquery/validation-engine/ js加到jquery.validat ...