iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >自动化安装Mysql5.6-脚本实现
  • 601
分享到

自动化安装Mysql5.6-脚本实现

2024-04-02 19:04:59 601人浏览 泡泡鱼
摘要

Mysql5.6新特性: 1.优化器的改进:主要体现在索引条件pushdown以及多范围的读取数据,可降低过载。2,InnoDB的改进:mysql InnoDB 存储引擎团队主要提供了 NoSQL 的访问接

Mysql5.6新特性: 1.优化器的改进:主要体现在索引条件pushdown以及多范围的读取数据,可降低过载。

2,InnoDB的改进:mysql InnoDB 存储引擎团队主要提供了 NoSQL 的访问接口,可通过 Memcached 的 api 直接访问 InnoDB 的表。

3,更好的复制:改进数据完整性和高可用性及性能方面大大提升。


  1. 安装环境,  一台Centos6.5  推荐二进制安装。 本文已经经过测试,作为生产库来说没有问题。每个公司需求不同可以稍稍改动,本文使用的是mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz

    如版本不同可以更改脚本的109 和110行替换mysql安装包名称。

2.开始安装,安装时把安装包放在root和脚本放在root下即可。


脚本如下:

[root@centos4 ~]# cat install-mysql.sh 

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

######数据库目录/usr/local/mysql############

######数据目录/data/mysql############

######日志目录/log/mysql############

######端口号默认3306其余参数按需自行修改############

##################

#author:zhangbin

##################

#!/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.25 on Redhat/CentOS Linux "

echo "========================================================================="

cur_dir=$(pwd)

#set mysql root passWord

echo "==========================="

mysqlrootpwd="MANAGER"

echo -e "Please input the root password of mysql:"

read -p "(Default password: MANAGER):" mysqlrootpwd

if [ "$mysqlrootpwd" = "" ]; then

mysqlrootpwd="MANAGER"

fi

echo "==========================="

echo "MySQL root password:$mysqlrootpwd"

echo "==========================="

#which MySQL Version do you want to install?

echo "==========================="

isinstallmysql56="n"

echo "Install MySQL 5.6.25,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.25"

isinstallmysql56="y"

;;

*)

echo "INPUT error,You will exit install MySQL 5.6.25"

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.25-linux-glibc2.5-x86_64.tar.gz

mv /root/mysql-5.6.25-linux-glibc2.5-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=$PATH:/usr/local/mysql/bin

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

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 'MANAGER';

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.25 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.25 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



3.执行完毕输入:

[root@centos4 ~]# source  /etc/profile

启动:

[root@centos4 ~]# /etc/init.d/mysqld start


4.解决无法远程连接数据库的出现1045 access denied for user 'root'@localhhost' using password yes


5.在mysql中执行

在mysql命令行中执行

SET PASSWORD FOR'root'@'localhost' = PASSWORD('123456'); 

GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

若以上方法不好使则:

use mysql; 

UPDATE user SETPassword=PASSWORD('123456') where USER='root';

flush privileges;  


您可能感兴趣的文档:

--结束END--

本文标题: 自动化安装Mysql5.6-脚本实现

本文链接: https://www.lsjlt.com/news/42058.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 自动化安装Mysql5.6-脚本实现
    Mysql5.6新特性: 1.优化器的改进:主要体现在索引条件pushdown以及多范围的读取数据,可降低过载。2,InnoDB的改进:MySQL InnoDB 存储引擎团队主要提供了 NoSQL 的访问接...
    99+
    2022-10-18
  • mydumper如何实现自动化安装脚本
    这篇文章主要介绍了mydumper如何实现自动化安装脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/usr/bin/expect -fset hname [linde...
    99+
    2023-06-04
  • 如何实现vtune自动化安装脚本
    本篇内容介绍了“如何实现vtune自动化安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/...
    99+
    2023-06-09
  • vtune自动化安装脚本
    #!/bin/bash#!/usr/bin/expect -f#!/usr/bin/env bashyum install -y expect wgetcd /rootwget http://172.16...
    99+
    2022-06-04
    脚本 vtune
  • mysql中如何实现自动化脚本安装的shell脚本
    这篇文章将为大家详细讲解有关mysql中如何实现自动化脚本安装的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。脚本处理逻辑流程图    ...
    99+
    2022-10-18
  • Shell脚本实现自动安装zookeeper
    A:本脚本运行的机器,Linux RHEL6 B,C,D,...:待安装zookeeper cluster的机器, Linux RHEL6 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装zk的机器...
    99+
    2022-06-04
    脚本 Shell zookeeper
  • 如何实现vtune自动安装脚本
    本篇内容介绍了“如何实现vtune自动安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/b...
    99+
    2023-06-09
  • MySQL如何实现各版本自动安装脚本
    这篇文章主要介绍MySQL如何实现各版本自动安装脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 描述:    1 . 所有版本都...
    99+
    2022-10-18
  • MySQL8.0 Mgr自动安装脚本
    MySQL8.0 自动安装脚本mysql8_install.shmy_test.cnfmysql-8.0.18-linux-glibc2.12-x86_64.tar.xz三个文件放在同一个目录下,例如/ro...
    99+
    2022-10-18
  • mysql5.5、5.6自动化安装脚本怎么写
    mysql5.5、5.6自动化安装脚本怎么写,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用环境:①CentOS6 &...
    99+
    2022-10-18
  • LAMP&LNMP自动化安装脚本代码
    一、脚本的环境介绍二、脚本的介绍三、脚本的功能介绍 一、脚本的环境介绍 此脚本运行在RHEL 6.4版本上运行此脚本需注意:1)、主机需要能够上网,因为博主是搭建的搜狐的外网yum源...
    99+
    2022-11-15
    LAMP LNMP
  • shell怎么实现自动安装python3的脚本
    这篇文章给大家分享的是有关shell怎么实现自动安装python3的脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。root用户权限# vim install_python3.sh1#!/b...
    99+
    2023-06-09
  • vtune自动安装脚本分享
    #!/bin/bash#!/usr/bin/expect -f#!/usr/bin/env bashyum install -y expect wgetcd /rootwget http://172.16....
    99+
    2022-06-04
    脚本 vtune
  • MySQL自动安装脚本分享
    本篇内容介绍了“MySQL自动安装脚本分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-18
  • python实现自动化脚本编写
    目录1. 打开浏览器,访问p.to2. 登陆3. 修改管理员密码4. 单元测试数据5. 检查输入的数据合法性6. 获取输入错误数据之后的页面提示语7. 编写测试用例8.编写单元测试类8.1 单元测试中的通用操作8.2...
    99+
    2022-06-02
    python 自动化脚本 python 自动化脚本编写
  • Shell脚本实现在Linux系统中自动安装JDK
    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: $ ./install-jd...
    99+
    2022-06-04
    脚本 系统 Shell
  • shell脚本如何自动安装jdk
    这篇文章主要介绍shell脚本如何自动安装jdk,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.安装准备jdk-8u221-linux-x64.tar.gz jdk压缩包(需要放在opt目录下)2.shell脚本2...
    99+
    2023-06-09
  • seleniumIDE自动化测试脚本的实现
    目录selenium IDE是干什么的selenium IDE环境的安装selenium IDE的使用selenium IDE是干什么的 Selenium IDE   是一...
    99+
    2022-11-13
  • shell自动安装python3的脚本写法
    root用户权限 # vim install_python3.sh 1 #!/bin/sh yum -y install zlib-devel bzip2-devel openssl-devel ncurses-de...
    99+
    2022-06-04
    shell 安装python3 shell 安装python3 pip
  • Shell脚本中怎么自动安装zookeeper
    这篇文章将为大家详细讲解有关Shell脚本中怎么自动安装zookeeper,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。A:本脚本运行的机器,Linux RHEL6B,C,D,...:待安装...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作