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 一.查看系统环境(关于该系统的安装 ...
随机推荐
- html 复选框(checkbox)和单选框(radio)与文字水平垂直居中对齐
对 input与label同时设置CSS input,label{ vertical-align:middle; }
- Django Admin后台管理模块的使用
Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django ...
- ios中沙盒
打开模拟器沙盒目录 下面看看模拟器的沙盒文件夹在mac电脑上的什么位置. 文件都在个人用户名文件夹下的一个隐藏文件夹里,中文叫资源库,他的目录其实是Library. 2.1 方法1.可以设置显示隐藏文 ...
- 【Charles】使用教程+破解+Windows版本https乱码+https证书安装注意
一.使用教程参考: 这一篇就够了,其他都是大同小异.Windows版和MAC版使用没太多区别. Charles 从入门到精通 | 唐巧的博客 https://blog.devtang.com/2015 ...
- HDU 1232 畅通工程(Kruskal)
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- MyBatis 从入门到熟悉.md
目录 MyBatis从入门到熟悉 MyBatis Generator MyBatis 测试 一对一 一对多 多对多 总结 参考 MyBatis从入门到熟悉 以下代码获取地址: https://gith ...
- android问题总结
1.当打开eclipse时出现如下窗口(内容如下) Error when loading the SDK: Error: Error parsing \Android\adt-bundle-windo ...
- JS eval()函数
js eval()函数 这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它. 举个小例子: //执行表达式 var the_unevaled_answer = & ...
- 事件对象event之e.targtet || e.srcElement
p.onclick = function (event) { var e = event || window.event, target = e.target ? e.target : e.srcEl ...
- Django - ModelForm组件
一.ModelForm组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样一张学生表, ...