MySql安装部署及脚本自动化安装

参考文章:http://www.2cto.com/database/201508/432226.html

说明:辛苦劳动,转载请注明出处,谢谢~~

一、环境

os:CentOS Linux release 7.2.1511 (Core) 
mysql:mysql-boost-5.7.17.tar.gz

以下为root账户安装,安装前都认为软件已下载完毕,存放在/root/software目录下

二、安装相关工具
yum -y install gcc gcc-c++ cmake make perl autoconf automake zlib libxml2 libxml2-devel libgcrypt bison libtool libtool-ltdl-devel*

三、安装libmcrypt && mcrypt
cd /root/software
1)、安装libmcrypt
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8、
./configure --prefix=/usr/local/libmcrypt/
make && make install

2)、安装 libltdl,也在libmcrypt源码目录中,非新软件
cd libltdl/
./configure --enable-ltdl-install
make && make install

3)、安装mhash
cd /root/software
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install

4)、安装mcrypt
cd /root/software
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8

LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
make && make install

四、安装ncurses
yum -y install ncurses-devel

cd /root/software
tar -zxvf ncurses-6.0.tar.gz
cd ncurses-6.0
./configure --with-shared --without-debug --without-ada --enable-overwrite
make && make install
cd ..

五、检查boost版本
rpm -qa boost*
卸载boost-*等库:
yum -y remove boost-*

六、创建work用户及工作目录
groupadd work
useradd -g work work
mkdir -p /home/work/mysql/data
mkdir -p /home/work/mysql/etc
mkdir -p /home/work/mysql/log
mkdir -p /home/work/mysql/tmp

七、新版本的mysq用cmake编译安装
cd /root/software
tar -zxvf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
cmake -DCMAKE_INSTALL_PREFIX=/home/work/mysql -DMYSQL_USER=work -DMYSQL_UNIX_ADDR=/home/work/mysql/tmp/mysqld.sock -DMYSQL_DATADIR=/home/work/mysql/data -DSYSCONFDIR=/home/work/mysql/etc -DWITH_BOOST=boost
make && make install(大概需要1~4小时)

参数说明:

CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
WITH_COMMENT:指定编译备注信息
WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
MYSQL_DATADIR:数据文件目录
MYSQL_TCP_PORT:服务端口号,默认3306
MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

八、权限设置(授权work)
cd /home/work/mysql/
chown -R work .
chgrp -R work .

九、初始化MySQL系统授权表
以root初始化操作时要加–user=work参数,生成一个随机密码(注意保存登录时有用,如:rgg7xofp.srA)
cd /home/work/mysql/
bin/mysqld --initialize --user=work --basedir=/home/work/mysql/ --datadir=/home/work/mysql/data/
结果:2017-03-27T01:15:14.754576Z 1 [Note] A temporary password is generated for root@localhost: rgg7xofp.srA

十、创建配置文件

将默认生成的my.cnf备份
mv /etc/my.cnf /etc/my.cnf.bak

上传配置文件

//cp support-files/my-default.cnf ./etc/my.cnf
cp support-files/my-default.cnf /home/work/mysql/etc/my.cnf

十一、配置mysql服务开机自动启动
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on

十二、将mysql服务加入系统环境变量
# vi /etc/profile 
添加:export PATH=$PATH:/home/work/mysql/bin 
使其配置生效命令:
# source /etc/profile

十三、mysql服务的启动/重启/停止
启动mysql服务
# service mysqld start

重启mysql服务
# service mysqld restart

停止mysql服务
# service mysqld stop

十四、访问mysql数据库
1)、切换work用户
# su work
2)、启动mysql服务
# service mysqld start
3)、连接mysql,输入初始化生成的随机密码(如:rgg7xofp.srA)
# mysql -uroot -prgg7xofp.srA
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> exit;
4)、使用新密码重新连接mysql
# mysql -uroot -p123456

十五、授权远程访问机器:
mysql> grant all privileges on *.* to 'root'@'10.80.1.%' identified by '123456';
mysql> grant all privileges on *.* to 'root'@'172.16.x.x' identified by '123456';
mysql> grant all privileges on *.* to 'root'@192.241.x.x' identified by '123456';
mysql> flush privileges;

附:自动化脚本mysql.sh

#########################################################################
# File Name: mysql.sh
# Author: spaceoflove
# mail: spaceoflove@qq.com
# Created Time: 2017.3.27
#########################################################################
#!/bin/bash

if [ ! $USER = root ];then 

echo "Please rerun this script as root ." 
exit 1 
fi

# variables
USER_NAME=work
GROUP_NAME=work
CURR_DIR=`pwd`
SOFTWARE_DIR=/root/software
INSTALL_DIR=/home/work/mysql
URL='ftp://10.100.20.254/web_library/'
EXT='--ftp-user=usename --ftp-password=123456'

mkdir -p ${SOFTWARE_DIR}

# install tools
yum -y install wget gcc gcc-c++ cmake make perl autoconf automake zlib libxml2 libxml2-devel libgcrypt bison libtool libtool-ltdl-devel*

# libmcrypt && mcrypt
cd ${SOFTWARE_DIR}
wget "${URL}system/libmcrypt-2.5.8.tar.gz" ${EXT}
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure --prefix=/usr/local/libmcrypt/
make
make install
make clean

cd ./libltdl/
./configure --enable-ltdl-install
make
make install
make clean

cd ${SOFTWARE_DIR}
wget "${URL}system/mhash-0.9.9.9.tar.gz" ${EXT}
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
make clean

cd ${SOFTWARE_DIR}
wget "${URL}system/mcrypt-2.6.8.tar.gz" ${EXT}
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/

LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
make
make install
make clean

# ncurses
yum -y install ncurses-devel

cd ${SOFTWARE_DIR}
wget "${URL}system/ncurses-6.0.tar.gz" ${EXT}
tar -zxvf ncurses-6.0.tar.gz
cd ncurses-6.0
./configure --with-shared --without-debug --without-ada --enable-overwrite
make
make install
make clean

# create user & dir
groupadd ${GROUP_NAME}
useradd -g ${GROUP_NAME} ${USER_NAME}
mkdir -p ${INSTALL_DIR}/data
mkdir -p ${INSTALL_DIR}/etc
mkdir -p ${INSTALL_DIR}/log
mkdir -p ${INSTALL_DIR}/tmp

# install mysql
cd ${SOFTWARE_DIR}
wget "${URL}work/mysql/mysql-boost-5.7.17.tar.gz" ${EXT}
tar -zxvf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DMYSQL_USER=work -DMYSQL_UNIX_ADDR=${INSTALL_DIR}/tmp/mysqld.sock -DMYSQL_DATADIR=${INSTALL_DIR}/data -DSYSCONFDIR=${INSTALL_DIR}/etc -DWITH_BOOST=boost
make
make install
make clean

# config
mv /etc/my.cnf /etc/my.cnf.bak
cp ./support-files/my-default.cnf ${INSTALL_DIR}/etc/my.cnf

# add server
cp ./support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig mysqld on

# chown
cd ${INSTALL_DIR}
chown -R ${USER_NAME} .
chgrp -R ${GROUP_NAME} .

# initialize
cd ${INSTALL_DIR}
bin/mysqld --initialize --user=${USER_NAME} --basedir=${INSTALL_DIR}/ --datadir=${INSTALL_DIR}/data/

# restore dir
cd ${CURR_DIR}

转载于:https://www.cnblogs.com/luxy/p/6639802.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值