主机环境:Centos6.5

前提:

1. 配置yum源

2. 移除系统自带的mysql

3. 删除原先的mysql用户

4. 使用mysql二进制安装包:https://dev.mysql.com/downloads/file/?id=473278

[root@mysql ~]# ls -lrt

-rw-r--r-- 1 root root 328739574 Nov 11 00:40 mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz
-rw-r--r-- 1 root root 7302 Nov 11 00:41 mysql_auto_install.sh
-rw-r--r-- 1 root root 866364 Nov 11 00:46 mysql-install.log

mysql_install.sh:注意替换软件包版本

[root@mysql ~]# cat mysql_auto_install.sh
###### 二进制自动安装数据库脚本root密码mysqld将脚本和安装包放在/root目录即可###############
######数据库目录/usr/local/mysql############
######数据目录/data/mysql############
######日志目录/log/mysql############
######端口号默认3306其余参数按需自行修改############
##################
#author:rrhelei@126.com#
##################
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin
export PATH
# Check if user is root
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root to install"
exit 1
fi
clear
echo "========================================================================="
echo "A tool to auto-compile & install MySQL 5.6.38 on Redhat/CentOS Linux "
echo "========================================================================="
cur_dir=$(pwd)
#set mysql root password
echo "==========================="
mysqlrootpwd="mysqld"
echo -e "Please input the root password of mysql:"
read -p "(Default password: mysqld):" mysqlrootpwd
if [ "$mysqlrootpwd" = "" ]; then
mysqlrootpwd="mysqld"
fi
echo "==========================="
echo "MySQL root password:$mysqlrootpwd"
echo "==========================="
#which MySQL Version do you want to install?
echo "==========================="
isinstallmysql56="n"
echo "Install MySQL 5.6.38,Please input y"
read -p "(Please input y , n):" isinstallmysql56
case "$isinstallmysql56" in
y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)
echo "You will install MySQL 5.6.38"
isinstallmysql56="y"
;;
*)
echo "INPUT error,You will exit install MySQL 5.6.38"
isinstallmysql56="n"
exit
esac
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
#dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "Press any key to start...or Press Ctrl+c to cancel"
char=`get_char`
# Initialize the installation related content.
function InitInstall()
{
cat /etc/issue
uname -a
MemTotal=`free -m | grep Mem | awk '{print $2}'`
echo -e "\n Memory is: ${MemTotal} MB "
#Set timezone
#rm -rf /etc/localtime
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#Delete Old Mysql program
rpm -qa|grep mysql
rpm -e mysql
#yum -y remove mysql-server mysql mysql-libs
#yum -y remove php-mysql
#yum -y install yum-fastestmirror
#yum -y update
#Disable SeLinux
if [ -s /etc/selinux/config ]; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
fi
setenforce 0
}
#Installation of depend on and optimization options.
function InstallDependsAndOpt()
{
cd $cur_dir
cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
echo "fs.file-max=65535" >> /etc/sysctl.conf
}
#Install MySQL
function InstallMySQL56()
{
echo "============================Install MySQL 5.6.22=================================="
cd $cur_dir
#Backup old my.cnf
#rm -f /etc/my.cnf
if [ -s /etc/my.cnf ]; then
mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak
fi
#mysql directory configuration
groupadd mysql -g 512
useradd -u 512 -g mysql -s /sbin/nologin -d /home/mysql mysql
tar xvf /root/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz
mv /root/mysql-5.6.38-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir -p /data/mysql
mkdir -p /log/mysql
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /log
#edit /etc/my.cnf
SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`
cat >>/etc/my.cnf<<EOF
[client]
port= 3306
socket= /tmp/mysql.sock
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port= 3306
socket= /tmp/mysql.sock
basedir= /usr/local/mysql
datadir= /data/mysql
open_files_limit = 3072
back_log = 103
max_connections = 800
max_connect_errors = 100000
table_open_cache = 512
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 51
query_cache_size = 32M
tmp_table_size = 96M
max_heap_table_size = 96M
slow_query_log = 1
slow_query_log_file = /log/mysql/slow.log
log-error = /log/mysql/error.log
long_query_time = 1
server-id = $SERVERID
log-bin = mysql-bin
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 4096M
max_binlog_size = 1024M
expire_logs_days = 60
key_buffer_size = 32M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
character-set-server=utf8
default-storage-engine = InnoDB
binlog_format = row
innodb_buffer_pool_dump_at_shutdown = 1
innodb_buffer_pool_load_at_startup = 1
binlog_rows_query_log_events = 1
explicit_defaults_for_timestamp = 1
#log_slave_updates=1
#gtid_mode=on
#enforce_gtid_consistency=1
#innodb_write_io_threads = 8
#innodb_read_io_threads = 8
#innodb_thread_concurrency = 0
transaction_isolation = REPEATABLE-READ
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
#innodb_data_home_dir =
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_locks_unsafe_for_binlog = 0
wait_timeout = 14400
interactive_timeout = 14400
skip-name-resolve
[mysqldump]
quick
max_allowed_packet = 32M
EOF
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
cat >> /etc/ld.so.conf.d/mysql-x86_64.conf<<EOF
/usr/local/mysql/lib
EOF
ldconfig
if [ -d "/proc/vz" ];then
ulimit -s unlimited
fi
/etc/init.d/mysqld start
cat >> /etc/profile <<EOF

export PATH=/usr/local/mysql/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH

EOF
source /etc/profile
/usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd
cat > /tmp/mysql_sec_script<<EOF
use mysql;
delete from mysql.user where user!='root' or host!='localhost';
grant all privileges on *.* to 'sys_admin'@'%' identified by 'mysqld';
flush privileges;
EOF
/usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script
#rm -f /tmp/mysql_sec_script
/etc/init.d/mysqld restart
echo "============================MySQL 5.6.38 install completed========================="
}
function CheckInstall()
{
echo "===================================== Check install ==================================="
clear
ismysql=""
echo "Checking..."
if [ -s /usr/local/mysql/bin/mysql ] && [ -s /usr/local/mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; then
echo "MySQL: OK"
ismysql="ok"
else
echo "Error: /usr/local/mysql not found!!!MySQL install failed."
fi
if [ "$ismysql" = "ok" ]; then
echo "Install MySQL 5.6.38 completed! enjoy it."
echo "========================================================================="
netstat -ntl
else
echo "Sorry,Failed to install MySQL!"
echo "You can tail /root/mysql-install.log from your server."
fi
}
#The installation log
InitInstall 2>&1 | tee /root/mysql-install.log
CheckAndDownloadFiles 2>&1 | tee -a /root/mysql-install.log
InstallDependsAndOpt 2>&1 | tee -a /root/mysql-install.log
InstallMySQL56 2>&1 | tee -a /root/mysql-install.log
CheckInstall 2>&1 | tee -a /root/mysql-install.log

安装过程:
[root@mysql ~]# sh mysql_auto_install.sh
=========================================================================
A tool to auto-compile & install MySQL 5.6.38 on Redhat/CentOS Linux
=========================================================================
===========================
Please input the root password of mysql:
(Default password: mysqld):
===========================
MySQL root password:mysqld
===========================
===========================
Install MySQL 5.6.38,Please input y
(Please input y , n):y
You will install MySQL 5.6.38

Press any key to start...or Press Ctrl+c to cancel
CentOS release 6.5 (Final)
Kernel \r on an \m

Linux mysql 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Memory is: 1862 MB
error: package mysql is not installed
setenforce: SELinux is disabled
mysql_auto_install.sh: line 243: CheckAndDownloadFiles: command not found
============================Install MySQL 5.6.22==================================
mysql-5.6.38-linux-glibc2.12-x86_64/share/polish/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/russian/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/german/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/spanish/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/italian/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/mysql_test_data_timezone.sql
mysql-5.6.38-linux-glibc2.12-x86_64/share/norwegian/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/slovak/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/serbian/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/dutch/errmsg.sys
mysql-5.6.38-linux-glibc2.12-x86_64/share/mysql_security_commands.sql
mysql-5.6.38-linux-glibc2.12-x86_64/share/dictionary.txt
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin1.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/Index.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin2.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/hp8.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/latin7.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/macroman.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/ascii.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/keybcs2.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/greek.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/hebrew.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/cp1257.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/swe7.xml
mysql-5.6.38-linux-glibc2.12-x86_64/share/charsets/cp866.xml
Installing MySQL system tables...2017-11-11 00:44:28 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-11-11 00:44:28 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.38-log) starting as process 3016 ...
OK

Filling help tables...2017-11-11 00:45:25 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-11-11 00:45:25 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.38-log) starting as process 3040 ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h 192.168.48.50 password 'new-password'

Alternatively you can run:

/usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd . ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

The latest information about MySQL is available on the web at

http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

New default config file was created as /usr/local/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

Starting MySQL.. SUCCESS!
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Shutting down MySQL.. SUCCESS!
Starting MySQL.. SUCCESS!
============================MySQL 5.6.38 install completed=========================
^C===================================== Check install ===================================
Checking...
MySQL: OK
Install MySQL 5.6.38 completed! enjoy it.

转:https://blog.csdn.net/gumengkai/article/details/78502131

Mysql5.6 自动化部署的更多相关文章

  1. MySQL5.6自动化部署(二进制)

    ###### 二进制自动安装数据库脚本root密码MANAGER将脚本和安装包放在/root目录即可############### ######数据库目录/usr/local/mysql####### ...

  2. MySQL5.7多实例自动化部署脚本

    一.安装说明 ------------------------------------------------------ mysql5.7.10_onekey_install.sh自动化部署脚本支持 ...

  3. MySQL5.6.12 rpm制作及及自动化部署安装

    转自:http://blog.itpub.net/29254281/viewspace-1268918/ 首先,下载rpmbuildyum install rpm-build -y它是Red Hat用 ...

  4. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  5. LTMP手动编译安装以及全自动化部署实践(附详细代码)

    大家使用LNMP架构,一般可以理解为Linux Shell为CentOS/RadHat/Fedora/Debian/Ubuntu/等平台安装LNMP(Nginx/MySQL /PHP),LNMPA(N ...

  6. Jenkins与gitlib实现自动化部署与持续构建

    Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和 ...

  7. python+paramiko库+svn写的自动化部署脚本

    第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一 ...

  8. ASP.NET MVC 从零开始 - 自动化部署(其二)

    这篇文章是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第五篇了,前四篇请参见: ASP.NET MVC 从零开始 – Create and R ...

  9. ASP.NET MVC 从零开始 - 自动化部署(其一)

    本文是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第四篇了,前三篇请参见: ASP.NET MVC 从零开始 – Create and Run ...

随机推荐

  1. SharePoint REST API - 确定REST端点URL

    博客地址:http://blog.csdn.net/FoxDave SharePoint REST端点URI的结构 在你能够通过REST访问SharePoint资源之前,首先你要做的就是找出对应的 ...

  2. day 42 mysql 数据类型

    mysql 数据类型   数据类型 truncate t1 (删除表) # 无符号类型 alter table t1 modify id tinyint unsigned (表里有值,不能直接改) d ...

  3. VOOKI:一款免费的Web应用漏洞扫描工具

    Vooki是一款免费且用户界面友好的Web应用漏扫工具,它可以轻松地为你扫描任何Web应用并查找漏洞.Vooki主要包括三个部分,Web应用扫描器,Rest API扫描器以及报告.Web应用扫描器​V ...

  4. ChinaCock界面控件介绍-CCButton

    即将发布的ChinaCock新版本,将带来一个CCButton控件,实现可视按钮.Delphi原生的Button,在上面滑动后,当释放手指时会误触发OnClick事件,这不是我们想要的结果,CCBut ...

  5. HDU 6059 17多校3 Kanade's trio(字典树)

    Problem Description Give you an array A[1..n],you need to calculate how many tuples (i,j,k) satisfy ...

  6. calc() --- css3

    http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html

  7. ES6 let和const 的相同点与区别

    相同点: 1. 一旦声明 值不能再改变,即不能重复声明. 2.不存在变量提升. 3.都存在暂时性死区. 不同点: 1.const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化 ...

  8. bootstrap 4 pull-right无效

    /********************************************************************** * bootstrap 4 pull-right无效 * ...

  9. Ubuntu Core 网络配置

    /********************************************************************************* * Ubuntu Core 网络配 ...

  10. 为什么说Java中只有值传递?

    一.为什么说Java中只有值传递? 对于java中的参数传递方式中是否有引用传递这个话题,很多的人都认为Java中有引用传递,但是我个人的看法是,Java中只有值传递,没有引用传递. 那么关于对象的传 ...