MySQL學習第二篇:MySQL安裝

1、按照前一篇文章準備好系統環境: http://blog.csdn.net/hwhmh2010/article/details/52664092

2、編輯安裝腳本

[root@mysql ~]# vim myinstall.sh
#!/bin/bash

export WEBSITEPATH=http://downloads.mysql.com/archives/get/file/ # mysql download path
export SOFTEDITION=mysql-5.6.25 # mysql download edition
export SOFTSUFFIX=tar.gz #Compressed package suffix
export SOFTFILEPATH=/root/soft/ # download mysql soft to this path
export INSTALL_PATH=/usr/local/mysql # mysql install path  
export DEFAULT_CHARSET=utf8 
export DEFAULT_COLLATION=utf8_general_ci 
export DATA_PATH=/data # mysql data path 
export TCP_PORT=3306  
export SOCKET_PATH=/data/mysql.sock # socket file path
export CNF_PATH=/usr/local/mysql/my.cnf # my.cnf path 
export SLOW_QUERY_LOG=/data/slow_query_log/
export LOG_BIN=/data/mysql_bin/
export IP=`ifconfig|grep "inet addr:"|grep -v "127.0.0.1"|cut -d: -f2|awk '{print $1}'`
export SERVER_ID=${IP} | sed 's/\.//g'

echo
echo "***** Check the soft file path *****"
echo
if [ -d ${SOFTFILEPATH} ]; then
echo $SOFTFILEPATH is exist, OK !
else
echo ${SOFTFILEPATH} is not exist,creating...
mkdir -p ${SOFTFILEPATH} && echo $SOFTFILEPATH is created OK !
fi

echo
echo "***** Check the install path *****"
echo
if [ -d ${INSTALL_PATH} ]; then
echo ${INSTALL_PATH} is exist, OK !
else
echo ${INSTALL_PATH} is not exist,creating...
mkdir -p ${INSTALL_PATH} && echo ${INSTALL_PATH} is created OK !
fi

echo
echo "***** Check the data path *****"
echo
if [ -d ${DATA_PATH} ]; then
echo ${DATA_PATH} is exist, OK !
else
echo ${DATA_PATH} is not exist,creating...
mkdir -p ${DATA_PATH} && echo ${DATA_PATH} is created OK !
fi

echo
echo "***** Check the SLOW_QUERY_LOG path *****"
echo
if [ -d ${SLOW_QUERY_LOG} ]; then
echo ${SLOW_QUERY_LOG} is exist, OK !
else
echo ${SLOW_QUERY_LOG} is not exist,creating...
mkdir -p ${SLOW_QUERY_LOG} && echo ${SLOW_QUERY_LOG} is created OK !
fi

echo
echo "***** Check the LOG_BIN path *****"
echo
if [ -d ${LOG_BIN} ]; then
echo ${LOG_BIN} is exist, OK !
else
echo ${LOG_BIN} is not exist,creating...
mkdir -p ${LOG_BIN} && echo ${LOG_BIN} is created OK !
fi


echo
echo "***** Check mysql user *****"
echo
grep mysql /etc/passwd &> /dev/null
if [ $? == 0 ]; then
        echo "user: mysql is already exist"
else
        # useradd -g mysql mysql
echo "User:mysql is not exist,creating..."
groupadd mysql && useradd -g mysql  mysql -s /sbin/nologin && echo mysql is created OK !
fi

echo
echo -n "***** Installing the package you need to compile,need 15 mins*****" 
echo
yum -y install gcc gcc-c++  autoconf automake zlib*  libxml* ncurses-devel libtool-ltdl-devel* make cmake bison bison-devel libaio &> /dev/null && echo 'Installing package OK!' 

cd $SOFTFILEPATH

echo
echo "***** Check the mysql package *****"
echo
if [ ! -f ${SOFTFILEPATH$SOFTEDITION}.${SOFTSUFFIX} ]; then
echo -n "Have no mysql package,downloading..."
echo
wget -c ${WEBSITEPATH}${SOFTEDITION}.${SOFTSUFFIX}
fi

tar xzf ${SOFTFILEPATH}${SOFTEDITION}.${SOFTSUFFIX}
cd ${SOFTFILEPATH}${SOFTEDITION}


echo
echo '***** Installing MySQL...******' 
echo


cmake . -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DDEFAULT_CHARSET=${DEFAULT_CHARSET} -DDEFAULT_COLLATION=${DEFAULT_COLLATION} -DMYSQL_DATADIR=${DATA_PATH} -DMYSQL_TCP_PORT=${TCP_PORT} -DMYSQL_UNIX_ADDR=${SOCKET_PATH} -DSYSCONFDIR=${CNF_PATH} 

echo
echo "execute command ==> make && make install"
echo

make && make install 

echo
echo -n '***** Initialization MySQL... ****' 
echo
( 
cd $INSTALL_PATH 
./scripts/mysql_install_db --user=mysql --basedir=${INSTALL_PATH} --datadir=${DATA_PATH} 
/bin/cp -f ${PWD}/support-files/mysql.server /etc/init.d/mysqld 
/bin/cp -f ${PWD}/support-files/my-medium.cnf ${CNF_PATH}
echo "PATH=${INSTALL_PATH}/bin/:${PATH}" >> /etc/profile 
chkconfig --add mysqld 
chkconfig mysqld on 
#service mysqld start
) &> /dev/null && echo ' Completed!' || exit 

echo 
echo '***** configure the my.cnf *****'
echo
echo "[client]
port = 3306
socket = /data/mysql.sock
[mysql]
no-auto-rehash
[mysqld_safe]
open-files-limit = 8192 
[mysqldump]
quick
[mysqld]
port = 3306
character_set_server = utf8
socket = /data/mysql.sock
sql_mode = STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_storage_engine = INNODB
basedir = /usr/local/mysql
datadir = /data
general_log = 0 
wait_timeout=10
back_log = 100           
max_connections = 1200       
connect_timeout = 300
max_connect_errors = 20  
table_open_cache = 2048
table_definition_cache = 2048
skip_external_locking = ON
max_allowed_packet = 500M
max_heap_table_size = 128M 
read_rnd_buffer_size = 8M      
sort_buffer_size = 1m       
join_buffer_size = 1m       
thread_cache_size = 256      
query_cache_size = 32M        
query_cache_limit = 2M         
tmp_table_size = 246M      
expire_logs_days = 15
innodb_buffer_pool_size = 512M  
innodb_thread_concurrency = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M   
innodb_log_file_size = 512M     
innodb_log_files_in_group = 3 
innodb_max_dirty_pages_pct = 75
innodb_purge_batch_size = 300            
innodb_flush_method = O_DSYNC
innodb_lock_wait_timeout = 120  
innodb_file_per_table = ON
innodb_open_files = 5000
open_files_limit = 65535
innodb_buffer_pool_instances = 8 
innodb_read_io_threads = 16  
innodb_write_io_threads = 4
innodb_io_capacity = 400 
innodb_doublewrite = ON    
innodb_use_native_aio = ON   
innodb_flush_neighbors = 1       
innodb_buffer_pool_dump_at_shutdown = 1 
innodb_buffer_pool_dump_now = 1        
innodb_buffer_pool_load_at_startup = 1  
innodb_buffer_pool_load_now = 1 
innodb_support_xa = 0  
innodb_purge_threads = 1
innodb_change_buffering = all
innodb_change_buffer_max_size = 25
skip_name_resolve          
explicit_defaults_for_timestamp = 1
slow_query_log = 1 
long_query_time = 3
slow_query_log_file = /data/slow_query_log/slow_query_log
log_queries_not_using_indexes = 1 
log_throttle_queries_not_using_indexes = 20
sync_binlog = 1 
binlog_checksum = CRC32
log_output = file 
log_bin = /data/mysql_bin/log_bin
log_bin_index = /data/mysql_bin/mysql_bin.index
binlog_format = ROW
binlog_row_image = minimal
binlog_cache_size = 6M     
max_binlog_cache_size = 512M
max_binlog_size = 1G
lower_case_table_names=1" > ${CNF_PATH} && echo 'configure the my.cnf completed !'

chown -R mysql:mysql ${DATA_PATH}
chown -R mysql:mysql ${INSTALL_PATH}
ln -fs  ${CNF_PATH} /etc/my.cnf

echo 
echo ***** source profile and start mysql *********************

source /etc/profile

${INSTALL_PATH}/bin mysqld start
echo 

echo "*****************************************
Install details :
Install path = ${INSTALL_PATH}
Data path = ${DATA_PATH}
Socket path = ${SOCKET_PATH}
The my.cnf path = ${CNF_PATH} or /etc/my.cnf
The slow_query_log=${SLOW_QUERY_LOG}
The log_bin=${LOG_BIN}
Default collation = ${DEFAULT_COLLATION} 
Please alter the mysql password and configure the my.cnf for your self .
******************************************"
echo 
echo '***** Installed Completed! *****'
echo

3、執行腳本,安裝

[root@mysql ~]# bash myinstall.sh

4、需要注意的坑:初始化數據庫、文件路徑權限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章