#!/bin/bash #該shell爲使用mysql二進制包安裝mysql-5.6 #測試系統:Centos7 #mysql下載地址 https://dev.mysql.com/downloads/mysql/ #下載一個mysql5.6的二進制包並執行shell #https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz #shell執行方式: #sh mysql_install.sh mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz port=3306 basedir=/opt/mysql datadir=/data mysql_passwd=`openssl rand -base64 9` function install { sudo yum -y install autoconf libaio-devel perl-Module-Install.noarch sudo mkdir -p $basedir sudo mkdir -p $datadir sudo tar -xvf $1 -C $basedir --strip-components 1 sudo useradd -r mysql -s /sbin/nologin sudo chown -R mysql.mysql $datadir sudo chown -R mysql.mysql $basedir sudo $basedir/scripts/mysql_install_db --basedir=$basedir \ --datadir=$datadir --user=mysql --pid-file=$basedir/mysql.pid ||exit -1 sudo cp $basedir/support-files/mysql.server /etc/init.d/mysqld sudo chmod +x /etc/init.d/mysqld if [[ ! -f /etc/my.cnf.bk ]]; then sudo cp /etc/my.cnf /etc/my.cnf.bk fi sudo cat>/etc/my.cnf <<END [mysqld] basedir = $basedir datadir = $datadir socket = /tmp/mysql.sock pid-file = $basedir/mysql.pid log-bin=mysql-bin binlog_format=mixed character-set-server = utf8 max_connections = 1000 default_storage_engine = InnoDB innodb_file_per_table = 1 innodb_open_files = 500 innodb_buffer_pool_size = 64M innodb_write_io_threads = 4 innodb_read_io_threads = 4 innodb_thread_concurrency = 0 innodb_purge_threads = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 2M innodb_log_file_size = 32M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 interactive_timeout = 28800 wait_timeout = 28800 lower_case_table_names=1 event_scheduler=1 skip-name-resolve=1 max_allowed_packet=30M END sudo ln -s $basedir/bin/* /usr/sbin/ sudo /etc/init.d/mysqld start sudo echo "/etc/init.d/mysqld start" >>/etc/rc.local sudo chmod +x /etc/rc.local sudo mysqladmin -u root password "$mysql_passwd" sudo mysql -uroot -p$mysql_passwd -e "delete from mysql.user where user=''; \ delete from mysql.db where user='';" sudo echo "port $port" >>$basedir/mysql.txt sudo echo "basedir $basedir" >>$basedir/mysql.txt sudo echo "datadir $datadir" >>$basedir/mysql.txt sudo echo "root passwd:$mysql_passwd" >>$basedir/mysql.txt sudo echo "mysql初始密碼保存在$basedir/mysql.txt" } case $1 in "") echo "Example: sh mysql_install.sh [壓縮包路徑]" exit 1;; *) if test ! -f $1 then echo "壓縮包名稱或路徑錯誤!" else install fi ;; esac