为适应自己工作习惯和需要,花一点时间写了一个mysql自动安装脚本,供大家参考学习。 注意: 1、需要先安装cmake 2、数据库版本需要在第二步安装mysql时修改 3、该脚本是以root用户安装并启动 脚本内容如下: ######################################################################## #mysql自动安装脚本,其中变量/mysql_v_dir/和/port/可根据实际需要修改 # #执行脚本命令:shmysql_install.sh >mysql_install.log # ########################################################################
####0.定义mysql目录#### mk_mysqldir=/tmp/setup ##mysql安装包所在目录 mysql_v_dir=mysql_5611 ##mysql version directry mysql_dir=/home/mysql/$mysql_v_dir ##the path where mysql install port=5611 ##端口号 ####1.创建mysql用户和组#### #user=`cat/etc/passwd |grep mysql` #if [ -z $user ] #then #groupadd mysql #useradd mysql -d/home/mysql -g mysql #else #userdel mysql #groupdel mysql #groupadd mysql #useradd mysql -d/home/mysql -g mysql #fi cd /home/mysql mkdir $mysql_v_dir cd $mysql_dir mkdir data log tmpetc #chown mysql:mysqldata log tmp etc
####2.安装mysql#### cd $mk_mysqldir tar -xzfmysql-5.6.16.tar.gz cd mysql-5.6.16 ##cmake install## cmake \ -DCMAKE_INSTALL_PREFIX=${mysql_dir} \ -DINSTALL_MYSQLDATADIR=${mysql_dir}/data \ -DMYSQL_DATADIR=${mysql_dir}/data\ -DSYSCONFDIR=${mysql_dir}/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_TCP_PORT=5535 \ -DMYSQL_UNIX_ADDR=${mysql_dir}/tmp/mysql.sock \ -DWITH_EXTRA_CHARSETS=all
make ; make install
####3.创建并修改配置文件##### cat <<EOF>$mysql_dir/etc/my.cnf [client] port = $port socket = $mysql_dir/tmp/mysql.sock
[mysqld]
port = $port basedir = $mysql_dir/ socket = $mysql_dir/tmp/mysql.sock pid-file = $mysql_dir/data/mysql.pid datadir = $mysql_dir/data/
tmpdir = $mysql_dir/tmp/ slave-load-tmpdir = $mysql_dir/tmp/ # skip lever skip-name-resolve skip-symbolic-links skip-external-locking skip-slave-start
#thread level
table_open_cache =2048
#############connect############ back_log = 50 max_connections = 1000 max_connect_errors = 10000 #open_files_limit = 10240
##############timeout########### connect-timeout = 10 wait-timeout = 800 interactive-timeout = 800 slave-net-timeout = 60 net_read_timeout = 30 net_write_timeout = 60 net_retry_count = 10 net_buffer_length = 16384 max_allowed_packet = 64M
#################cache ############# table_open_cache = 2048 thread_stack = 192K thread_cache_size = 100 thread_concurrency = 16
# qcache settings query_cache_size = 20m query_cache_limit = 2M query_cache_min_res_unit= 2K
# default settings # time zone default-time-zone = system character-set-server = utf8 default-storage-engine = InnoDB
# tmp & heap tmp_table_size = 512M max_heap_table_size = 512M
log-bin = mysql-bin log-bin-index = mysql-bin.index relay-log = relay-log relay_log_index = relay-log.index
# warning &error log log-warnings = 1 log-error = $mysql_dir/log/mysql.err
log-output = FILE
# slow query log slow_query_log = 1 long-query-time = 1 slow_query_log_file = $mysql_dir/log/slow.log #log-queries-not-using-indexes #log-slow-slave-statements
general_log = 1 general_log_file = $mysql_dir/log/mysql.log max_binlog_size = 1G max_relay_log_size = 1G
# if use auto-ex,set to 0 relay-log-purge = 1
# max binlog keepsdays expire_logs_days = 7
binlog_cache_size = 1M
# replication #replicate-wild-ignore-table = mysql.% #replicate-wild-ignore-table = test.% #slave_skip_errors=all
key_buffer_size = 30M sort_buffer_size = 2M read_buffer_size = 2M join_buffer_size = 8M read_rnd_buffer_size = 8M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 64M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover
group_concat_max_len = 64K
transaction_isolation = REPEATABLE-READ
innodb_file_per_table #############mysql5.5new################ innodb_file_format =Barracuda ########################################
innodb_additional_mem_pool_size= 10M innodb_buffer_pool_size = 200M innodb_data_home_dir = $mysql_dir/data/ innodb_data_file_path = ibdata1:100M:autoextend
################mysql5.5new############ innodb_read_io_threads = 8 innodb_write_io_threads = 8 innodb_purge_threads = 1 ########################################
innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M innodb_log_file_size = 50M innodb_log_files_in_group = 2 innodb_log_group_home_dir = $mysql_dir/data/
innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 50 #innodb_flush_method = O_DSYNC
################mysql5.6new##################### innodb_buffer_pool_instances = 16 innodb_change_buffering = all innodb_adaptive_flushing = 1 innodb_io_capacity = 2000 innodb_old_blocks_time = 1000 innodb_stats_on_metadata = 0 #################################################
old-passwords = 0
[mysqldump] quick max_allowed_packet = 64M
[mysql] no-auto-rehash default-character-set = utf8 connect-timeout = 3
[myisamchk] key_buffer_size =256M sort_buffer_size =256M read_buffer = 2M write_buffer = 2M
[mysqlhotcopy] interactive-timeout EOF
####4.初始化数据库并启动#### cd$mysql_dir/scripts ./mysql_install_db--basedir=$mysql_dir --datadir=$mysql_dir/data --user=root cd $mysql_dir/bin ./mysqld_safe--defaults-file=$mysql_dir/etc/my.cnf --user=root & ####5.添加mysql命令到环境变量中#### echo "exportPATH=$mysql_dir/bin:$PATH" >>/root/.bash_profile source/root/.bash_profile
|