本脚本基于第三方一键安装脚本修改而来!
注意:一定要使用 dos2unix来转换一下bash脚本,否则自动创建的目录名会带一个特殊字符,导致出现找不到路径的问题。
# 安装 dos2unix
yum install -y dos2unix
# 假如一键安装mysql脚本叫做 install_mysql5.6.sh
dos2unix ./install_mysql5.6.sh
# 执行安装mysql
chmod +x install_mysql5.6.sh
bash install_mysql5.6.sh
install_mysql5.6.sh 文件内容如下:
#!/bin/bash
# 安装 mysql 需要的依赖库
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
# 定义 mysql 安装目录(此目录可以自定义)
mkdir -p /alidata/server/mysql
ifubuntu=$(cat /proc/version | grep ubuntu)
if14=$(cat /etc/issue | grep 14)
# 下载和解压缩
if [ `uname -m` == "x86_64" ];then
machine=x86_64
else
machine=i686
fi
if [ $machine == "x86_64" ];then
rm -rf mysql-5.6.21-linux-glibc2.5-x86_64
if [ ! -f mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz ];then
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
fi
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64/* /alidata/server/mysql
else
rm -rf mysql-5.6.21-linux-glibc2.5-i686
if [ ! -f mysql-5.6.21-linux-glibc2.5-i686.tar.gz ];then
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.6.21-linux-glibc2.5-i686.tar.gz
fi
tar -xzvf mysql-5.6.21-linux-glibc2.5-i686.tar.gz
mv mysql-5.6.21-linux-glibc2.5-i686/* /alidata/server/mysql
fi
if [ "$ifubuntu" != "" ] && [ "$if14" != "" ];then
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
fi
# 创建用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
# 执行 mysql 安装目录下的 mysql_install_db 脚本
/alidata/server/mysql/scripts/mysql_install_db --datadir=/alidata/server/mysql/data/ --basedir=/alidata/server/mysql --user=mysql
# 添加MYSQL到系统服务
cp -f /alidata/server/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's#^basedir=$#basedir=/alidata/server/mysql#' /etc/init.d/mysqld
sed -i 's#^datadir=$#datadir=/alidata/server/mysql/data#' /etc/init.d/mysqld
chkconfig --add mysqld
# 配置MYSQL配置文件(注意:etc目录下的my.cnf的优先级大于mysql安装目录下的my.cnf)
cat > /etc/my.cnf <<END
[client]
port = 3306
#socket = /tmp/mysql.sock
[mysql]
default-character-set = utf8
no-auto-rehash
[mysqld]
port = 3306
#socket = /tmp/mysql.sock
skip-external-locking
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
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
log-bin = mysql-bin
binlog_format = mixed
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
expire_logs_days = 5
max_binlog_size = 1000M
END
# 创建配置文件的快捷方式
mv /alidata/server/mysql/my.cnf /alidata/server/mysql/my.cnf.bac
ln -s /etc/my.cnf /alidata/server/mysql/my.cnf
# 启动 MYSQL服务
chmod 755 /etc/init.d/mysqld
/etc/init.d/mysqld start
# 配置开机启动 MySQL服务
chkconfig mysqld on