#!/bin/bash
#注意:如果报错查看脚本的格式,ser ff,如果不是unix。set ff=unix更改一下就行,然后把已经执行的操作删除掉,如下载的包之类的,然后从新执行
#创建源码包存放目录
mkdir -p /home/tools
#下载源码包
wget -P /home/tools/ http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz
#创建mysql用户组和用户
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
#---------------------------------------------------------------------------------------------------
#创建mysql相关目录。日志存放路径/home/wwwlogs/mysql。mysql主配置文件路径/usr/local/mysql/etc。mysql的主配置文件/usr/local/mysql/etc/my.cnf。mysql的数据库目录/home/mysql_data
mkdir -p /home/wwwlogs/mysql
mkdir -p /usr/local/mysql/etc
touch /usr/local/mysql/etc/my.cnf
mkdir -p /home/data/mysql_data
#---------------------------------------------------------------------------------------------------
#安装依赖包
yum install -y gcc-c++ cmake make bison bison-devel ncurses-devel libaio-devel perl readline-devel autoconf
#---------------------------------------------------------------------------------------------------
#切换到安装包所在路径
cd /home/tools
#---------------------------------------------------------------------------------------------------
#解压源码包并进入解压出来得源码包
tar -zxvf mysql-5.6.23.tar.gz
cd mysql-5.6.23
#---------------------------------------------------------------------------------------------------
#cmake,指定安装路径:/usr/local/mysql、指定mysql的主配置文件所在:/usr/local/mysql/etc、指定mysql的数据库文件存放路径:/home/data/mysql-data、指定sock文件存放路径:/tmp/mysql.sock
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DMYSQL_DATADIR=/home/data/mysql_data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=system
#---------------------------------------------------------------------------------------------------
#编译及安装
make && make install
#---------------------------------------------------------------------------------------------------
#编辑/usr/local/mysql/etc/my.cnf文件(mysql的主配置文件路径)
cat > /usr/local/mysql/etc/my.cnf <
[client]
#password = your_password
socket = /tmp/mysql.sock
[mysqld]
port = 3306
user = mysql
tmpdir = /dev/shm
socket = /tmp/mysql.sock
datadir = /home/data/mysql_data
log-error = /home/wwwlogs/mysql/mysql_err.log
general_log_file= /home/wwwlogs/mysql/main.log
general_log = ON
pid-file = /home/data/mysql_data/mysql.pid
skip-name-resolve
max_connections = 1100
max_user_connection = 1000
open-files-limit = 65534
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# slow query
# log_warnings = 2
slow_query_log
slow_query_log_file = /home/wwwlogs/mysql/mysql_slowquery.log
long_query_time = 2
expire_logs_days = 30
# binary logging format - mixed recommended
binlog_format=mixed
server-id = 1
log-bin=/home/data/mysql_data/mysql-bin
log-slave-updates
innodb_data_file_path = ibdata1:256M:autoextend
innodb_buffer_pool_size = 2G
innodb_use_sys_malloc = 1
innodb_log_file_size = 256M
innodb_log_buffer_size = 64M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
log_bin_trust_function_creators=1
lower_case_table_names=1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
END
#---------------------------------------------------------------------------------------------------
#初始化mysql.指定安装路径:/usr/local/mysql、指定mysql的主配置文件所在:/usr/local/mysql/etc、指定mysql的数据库文件存放路径:/home/data/mysql_data、指定mysql用户
cd /usr/local/mysql/scripts/
./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/data/mysql_data/ --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql
#---------------------------------------------------------------------------------------------------
#给予Mysql相关目录权限
chown mysql:mysql /home/wwwlogs/mysql -R
chown mysql:mysql /usr/local/mysql -R
chown mysql:mysql /home/data/mysql_data -R
#---------------------------------------------------------------------------------------------------
sleep 3
#进入mysql目录,拷贝mysql启动文件到/etc/init.d/,并给予执行权限
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#---------------------------------------------------------------------------------------------------
#设置环境变量
echo PATH=\$PATH:/usr/local/mysql/bin >> ~/.bash_profile
echo export PATH >> ~/.bash_profile
source ~/.bash_profile
#---------------------------------------------------------------------------------------------------
#删除可能存在的/etc/my.cnf。这个文件存在启动会失败
cd /etc/
rm -rf my.cnf >/dev/null 2>&1
cd /usr/local/mysql
rm -rf my.cnf >/dev/null 2>&1
#---------------------------------------------------------------------------------------------------
#设置命令变量
ln /usr/local/mysql/bin/mysql /usr/local/bin/
#---------------------------------------------------------------------------------------------------
#启动mysql
service mysqld start
#---------------------------------------------------------------------------------------------------
#判断
if test $? -eq 0; then echo 'mysql安装成功'; else echo 'mysql安装失败'; fi;
#---------------------------------------------------------------------------------------------------