CentOS6.x/CentOS7.x一键安装MySQL5.6/5.7并定制数据目录

一、系统环境及说明

二、准备安装包

1、官方下载

#https://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择对应的版本和平台软件包:

MySQL-shared-compat-5.6.x-1.el6.x86_64.rpm    #x就是你下的版本号以下类同
MySQL-devel-5.6.x-1.el6.x86_64.rpm
MySQL-shared-5.6.x-1.el6.x86_64.rpm
MySQL-client-5.6.x-1.el6.x86_64.rpm
MySQL-test-5.6.x-1.el6.x86_64.rpm
MySQL-server-5.6.x-1.el6.x86_64.rpm

2、本实验用到的包

------------------------------------------分割线------------------------------------------

相关资料可从以下信息得到下载:

如果取消关注Linux公社公众号,即使再次关注,也将无法提供本服务!

链接:https://pan.baidu.com/s/17n92UK1RmvTwktAjLBlK7g 密码:获得见上面的方法,地址失效请在下面留言。

------------------------------------------分割线------------------------------------------

包含了以下软件包(也是从官方下载):

MySQL-shared-compat-5.6.21-1.el6.x86_64.rpm
MySQL-devel-5.6.21-1.el6.x86_64.rpm
MySQL-shared-5.6.21-1.el6.x86_64.rpm
MySQL-client-5.6.21-1.el6.x86_64.rpm
MySQL-test-5.6.21-1.el6.x86_64.rpm
MySQL-server-5.6.21-1.el6.x86_64.rpm

三、安装mysql5.6

1、如果是官方下载的请直接执行下面操作

#rpm -ivh MySQL-shared-compat-5.6.x-1.el6.x86_64.rpm      #提供基础依赖组件,需要第一个安装
#yum remove mysql-libs -y              #御载默认自带的mysql-lib
#yum install libaio -y                        #安装libiao
#rpm -ivh MySQL-devel-5.6.x-1.el6.x86_64.rpm
#rpm -ivh MySQL-shared-5.6.x-1.el6.x86_64.rpm
#rpm -ivh MySQL-client-5.6.x-1.el6.x86_64.rpm
#rpm -ivh MySQL-test-5.6.x-1.el6.x86_64.rpm
#rpm -ivh MySQL-server-5.6.x-1.el6.x86_64.rpm

说明:以上直接安装的数据目录在/var/lib/mysql下 但有时你并不希望 数据目录和/目录在一个分区(磁盘)上
因此可通过脚本重重新初始化安装到别的目录;完成自定制;

2、本实验脚本如下:

将以上rpm包放到一个目录,创建my.cnf文件(公供参考)

cat my.cnf

[mysqld]
 
# GENERAL #
user                          = mysql
default-storage-engine        = InnoDB
socket                        = /data1/mysqldb/data/mysql.sock
pid-file                      = /data1/mysqldb/data/mysql.pid
 
# MyISAM #
key-buffer-size                = 32M
myisam-recover                = FORCE,BACKUP
 
# SAFETY #
max-allowed-packet            = 16M
max-connect-errors            = 1000000
 
# DATA STORAGE #
datadir                        = /data1/mysqldb/data
 
# BINARY LOGGING #
log-bin                        = /data1/mysqldb/log/mysql-bin
expire-logs-days              = 14
sync-binlog                    = 1
 
# CACHES AND LIMITS #
tmp-table-size                = 32M
max-heap-table-size            = 32M
query-cache-type              = 0
query-cache-size              = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit              = 65535
table-definition-cache        = 1024
table-open-cache              = 2048
 
# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size          = 64M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 256M
 
# LOGGING #
log-error                      = /data1/mysqldb/log/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                = 1
slow-query-log-file            = /data1/mysqldb/log/mysql-slow.log

注意:生产环境有些优化参数请按需修改;以上仅供参考;您也可以到https://tools.percona.com/  网站填写相关参数生成配置文件;

并在目录中创建一个install.sh脚本内容如下:

cat install.sh

#!/bin/bash
src_dir=$(pwd)
cd $src_dir
rpm -ivh MySQL-shared-compat-5.6.21-1.el6.x86_64.rpm
yum remove mysql-libs -y
yum install libaio -y
rpm -ivh MySQL-devel-5.6.21-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-5.6.21-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.21-1.el6.x86_64.rpm
rpm -ivh MySQL-test-5.6.21-1.el6.x86_64.rpm
rpm -ivh MySQL-server-5.6.21-1.el6.x86_64.rpm
 
#service mysql start && echo "mysql5.6.21 has installes sucess!"
#mysql_root_pwd=`gawk -F : '{ print $4 }' /root/.mysql_secret`
#echo "A random root password has been set. You will find it in '/root/.mysql_secret'."
#echo "The random root password was:'${mysql_root_pwd// }'"
 
service mysql stop
[ -d /data1/mysqldb/data ] || mkdir -p /data1/mysqldb/data
[ -d /data1/mysqldb/log ] || mkdir -p /data1/mysqldb/log
chown mysql.mysql /data1/mysqldb -R
cd $src_dir
cp ${src_dir}/my.cnf /etc
cd /usr/bin
./mysql_install_db --user=mysql --basedir=/usr --datadir=/data1/mysqldb/data  #迁移数据目录到/data1/mysqldb/data下可自行定制
cd /var/lib
mv mysql /tmp
mkdir mysql
chown mysql.mysql mysql
 
service mysql start && echo "Mysql root password was empty.Please change when you login mysql."
ln -s /data1/mysqldb/data/mysql.sock  /var/lib/mysql/mysql.sock      #由于一些mysql工具默认到这里找mysql.sock所以做个软链

  四、注意问题

1、关闭selinux否则脚本安装不成功

2、安装后系统自带的postfix和crontab工具被御了,重新yum安装 一次即可

3、mysql服务的root密码为空,请自行修改root密码

或在脚本中添加以下行 在mysql迁移好目录启动后自动修改mysql root密码

mysqladmin -u root password "123.com"     

补充部分:

CentOS7.x安装 mysql 5.7.21

到mysql官方下载Linux通用包wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

解压:

tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz  -C /usr/local
ln -sv mysql-5.7.21-linux-glibc2.12-x86_64  mysql

添加环境变量

cat /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH

初始化:

#useradd -r mysql
#mkdir -pv /data/mysql
#chown mysql.mysql /data/mysql
#mysqld --initialize-insecure  --datadir=/data/mysql --user=mysql --basedir=/usr/local/mysql/
#mkdir /usr/local/mysql/etc/my.cnf.d
#chown mysql.mysql -R /usr/local/mysql/etc
#cp /etc/my.cnf /usr/local/mysql/etc/
#cat /usr/local/mysql/etc/my.cnf

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/usr/local/mysql/log/error.log
pid-file=/var/run/mysql/mysql.pid
!includedir /usr/local/mysql/etc/my.cnf.d

复制启动脚本:

#cp /usr/local/mysql/suppor-files/mysql.server /etc/init.d/mysqld
#touch /usr/local/mysql/log/error.log 
#chwon mysql.mysql /usr/local/mysql/log/error.log
#chmod 755 /usr/local/mysql/log/error.log
#chkconfig --add mysqld
#chkconfig mysqld on
#service mysqld start

Ubuntu 16.04上安装

下载同样的包

安装的步骤与上面CentOS7类似,不同的是ubuntu 16.04上不支持service 方式管理

因此需要复制

#cp /usr/local/mysql/suppor-files/mysql.server /etc/init.d/mysqld
#sudo systemctl daemon-reload
#chown root.mysql /usr/local/mysql -R
#chmod 775 /usr/local/mysql -R
 
#systemctl enable mysqld
#systemctl start mysqld
#systemctl status mysqld

如图:

mysql -uroot -p

如图:

注意安装后mysql root密码为空;请自行设置 root密码;以下脚本一键安装亦是如此!

一键安装脚本

以上在CentOS7上安装和Ubuntu 16.04下安装大同小异,均可以安装成功;因此整理成一键安装脚本!

#cat auto_install_mysql.sh

猜你喜欢

转载自www.linuxidc.com/Linux/2018-04/151894.htm