Centos7一鍵安裝mysql

#!/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
相關文章
相關標籤/搜索