1. 程式人生 > >Mysql5.6自動化部署

Mysql5.6自動化部署

主機環境:Centos6.5

前提:

1. 配置yum源

2. 移除系統自帶的mysql

3. 刪除原先的mysql使用者

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

[[email protected] ~]# 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:注意替換軟體包版本

[[email protected] ~]# cat mysql_auto_install.sh 
###### 二進位制自動安裝資料庫指令碼root密碼mysqld將指令碼和安裝包放在/root目錄即可###############
######資料庫目錄/usr/local/mysql############
######資料目錄/data/mysql############
######日誌目錄/log/mysql############
######埠號預設3306其餘引數按需自行修改############
##################
#author:
[email protected]
# ################## #!/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=$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 '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

安裝過程:

[[email protected] ~]# 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.


相關推薦

Mysql5.6自動化部署

主機環境:Centos6.5 前提: 1. 配置yum源 2. 移除系統自帶的mysql 3. 刪除原先的mysql使用者 4. 使用mysql二進位制安裝包:https://dev.mysql.com/downloads/file/?id=473278 [[email

MySQL5.6單機部署安裝

erro table align log-error pda init his eve selinux MySQL二進制包安裝: 安裝包獲取方式 官網下載url: http://dev.mysql.com/downloads/mysql/ 數據庫下載url

mysql5.6安裝部署

storage 配置 CM bst tex x86_64 linu mysqld engine 添加mysql用戶groupadd mysqluseradd mysql -g mysql -M -s /sbin/nologin 解壓文件tar –zxvf mysql-5.6

MySQL5.6 二進位制部署

下載mysql並檢查MD5 [[email protected] ~]# cd /usr/local [[email protected] local]# wget https://downloads.mariadb.com/archives/mysql-5.6/my

mysql5.6.40部署過程

1.安裝依賴 [[email protected] ~]# yum install -y gcc gcc-c++ automake autoconf [[email protected] ~]# yum -y install cmake bison-devel ncurses-deve

MySQL5.6生產庫自動化安裝部署

1分鐘完成MySQL5.6生產庫自動化安裝部署   1分鐘完成MySQL5.6安裝部署 簡介

mysql5.6.20二進制安裝部署文檔

mysql 二進制 安裝部署 mysql5.6.20二進制安裝部署文檔一、業務需求:單臺服務器線上運行著mysql5.5.48現在是不影響線上的業務,不停止線上的mysql5.5數據庫來部署另外一個mysql5.6.20的實例二、安裝部署過程:2.1安裝部署過程註意事項:在初始化mysql數據庫時

快速部署MySQL5.6.36數據庫實踐

MySQL5.6.36二進制安裝1、創建用戶安裝依賴包上傳軟件包[root@db01 ~]# useradd -s /sbin/nologin -M mysql #<==創建用戶[root@db01 app]# yum install libaio* perl-devel -y #<==安裝

centos6.8下安裝部署LNMP(備註:nginx1.8.0+php5.6.10+mysql5.6.12)

debug pcr chkconfig c++ sam libjpeg php 執行 btool 在平時運維工作中,經常需要用到LNMP應用框架。以下對LNMP環境部署記錄下: 1)前期準備:為了安裝順利,建議先使用yum安裝依賴庫[root@opd ~]#yum ins

Centos7 RPM方式安裝部署mysql5.6

自動 登錄mysql adbc 環境 開始 nodeps ges adb 配置 1.首先安裝好jdk環境,本機所用環境為jdk1.8 2.卸載MariaDB(Centos7自帶)與Mysql 2.1卸載:MariaDB #rpm -qa | grep -i mariadb

【若澤大數據MySQL實戰】MySQL5.6 二進制部署

mod func kconfig currency rem .gz ... lin profile 下載mysql並檢查MD5 [root@hadoop-01 ~]# cd /usr/local [root@hadoop-01 local]# wget https://do

阿里雲 Linux下CentOS7 部署javaweb環境 ------ 2.mysql5.6 yum安裝

安裝包一種是tar.gz 壓縮包解壓完配置一下就可以用了,另外一個是rpm包安裝,相當於window裡面exe安裝檔案,這裡mysql 用rpm包安裝比較簡單。 一共幾步: 1.yum源改成阿里yum源 2.下載安裝 3.防火牆開放埠 4.navicat 遠端連

MySQL5.7多例項自動化部署指令碼

一、安裝說明 ------------------------------------------------------ mysql5.7.10_onekey_install.sh自動化部署指令碼支援mysql5.7.10初始化安裝,多例項建立,且使用經過優化後的my.cnf配置檔案和mysql.ser

docker部署mysql5.6.40

基本是照著這個做的:https://www.cnblogs.com/straycats/p/9251571.html 預設登入進來在/root目錄,直接新建的目錄 /root/mysql,感覺有點不合理,暫時沒改 1、初始化docker swarm docker swarm init 2、在

Win10+VS2015+EF6.0+MySQL5.6+MVC環境部署和排錯

本來已經好幾個月不弄專業了,今天一哥們問我問題的時候重新搗鼓了一下,就做個文件供後來人參考吧~ 1.首先安裝MySQL 5.6 安裝很簡單我就不說了,你參考下:http://jingyan.baidu.com/article/7e440953d6f0702fc1e2ef61.html 大部分都是一樣的,

MySQL5.6 雙機HA高可用部署方案

注:主、備機只有ucast一個引數不一樣。 8、新增資源配置檔案 vi /etc/ha.d/haresources mysql1 192.168.2.9/24/eth0:1 Filesystem::/dev/sdb1::/hadata::ext4 mysqld 注:主、備機的設定一致。 9、新增認證檔

vRealize Operations Manager 6.5部署

vcenter vcops vrops  生產環境一直使用vCenter管理host主機,因規模小沒上vcops。從升級vcenter6.5後個別VM總是莫名其妙的報內存使用率過高的問題,而實際內存使用並不高,資源也夠用。vcenter本身沒有很好的工具分析和監控vsphere,但vmware有專門的管理軟件

使用fdmemTable來代替clientDataset,解決MySQL5.6(含)以上版本用cds多次更新時的錯誤

提交 sage string fdm pos final .text .post 1.5 //讀取mysql保存到fdMemTable中 procedure TForm3.btnOpen1Click(Sender: TObject);var stream, stream2

ubuntu14.04編譯安裝mysql5.6.28

add memory server 目錄 是否 efault mysql-bin cnblogs adl 一、安裝必備工具sudo apt-get install make bison g++ build-essential libncurses5-dev cmake nc

centos7-安裝mysql5.6.36

本地 目錄 names date 位置 download 啟動 ase 出現 本地安裝了mysql5.7, 但和springboot整合jpa時會出現 hibernateException, 不知道為什麽, 換個mysql5.6版本的mysql, 源碼安裝, cmake一