mysql二进制安装

时间:2019-11-19
本文章向大家介绍mysql二进制安装,主要包括mysql二进制安装使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

MYSQL部署

  • 由于yam方式安装的mysql太分散不好管理我这里就写了一下二进制包的安装方法

    二进制包的安装

    获得官方编译好了的包文件

  • https://downloads.mariadb.org/mariadb/10.2.29/ 这个地址然后找到自己需要的包下载(德国ip)
  • https://downloads.mariadb.org/interstitial/mariadb-10.2.29/bintar-linux-systemd-x86_64/mariadb-10.2.29-linux-systemd-x86_64.tar.gz/from/http%3A//mirror.netinch.com/pub/mariadb/ (清华源,快很多不知道问啥)
  • 后续下载源码编译安装也可以在这里下载

    安装前配置

  • 默认最小安装
  • 下载对应的包到家目录
  • 推荐使用逻辑卷,这里我就用xfs文件系统
  • 关闭selinux
  • 关闭防火墙
  • 网卡只要能连网就好(为了下载网上的包)
  • 将mysql的用户创建好,不会默认创建
    1. 系统账户
    1. sbin/nologin
    1. 用户名:mysql,可自己指定uid

      解压二进制包

  • 官方退出了两个二进制包,分别是适用于centos7之后的带systemd的包mariadb-10.2.29-linux-systemd-x86_64.tar.gz
  • 另一个是:mariadb-10.2.29-linux-x86_64.tar.gz
  • 因为在cento7之后系统的第一个进程从init变成了systemd 所以低版本用第一个包就不方便使用,总体来说步骤差不多只有在后面启动的时候会有微小差别,我会前面以systemd方式演示,到不同的时候说明那里会有不同点
  • tar xf mariadb-10.2.29-linux-systemd-x86_64.tar.gz -C /usr/locad/ 解压文件到/usr/locad/目录下
  • 改一个名字: cd /usr/locad ; mv mariadb-10.2.29-linux-systemd-x86_64 mysql
  • 更改所属用户所属组 : chomn -R mysql:root mysql

    创建数据库所需要的PATH变量文件

  • cd /etc/profile.d/ ;
  • vim mariadb.sh
  • 内容:
    1. !#/bin/bash
    1. export PATH=/usr/local/mysql/bin:$PATH

下载安装mysql的时候所必需的的io依赖包

  • yum -y install libaio
  • 贴一个对这个包的介绍帖子
  • https://blog.csdn.net/naipeng/article/details/89918482

    执行mysql下的安装脚本

  • cd /usr/locad/mysql
  • ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    1. 注意安装目录 datadir 可以自己定义,我这里选择安装在data下
    1. 默认用户: user 使用 新建好了的系统用户mysql
  • 执行后会出现安装完成的提示

    修改启动配置文件:

  • 服务端
  • vim /etc/my.cnf
    1. [mysqld]
    1. datadir=data/mysql (前面安装的时候填写的路径)
    1. socket=/data/mysql/mysql.sock
  • 客户端
  • vim /etc/my.cnf.d/mysql-clients.cnf
    1. socket=/data/mysql/mysql.sock

将启动文件放到系统的system文件夹下

  • systemd方式
  • cp support-files/systemd/mariadb.service /usr/lib/systemd/system/

  • init方式 (前面步骤基本一样)
  • cp support-files/mysql.server /etc/init.d/mariadb

开启服务

  • systemd 开启方式
  • systemct start mariadb
  • init 开启方式
  • service mariadb start

连接

  • mysql
  • MariaDB[none]>

    基础的安全加固提要

  • 安全加固脚本 mysql_secure_installation
  1. 为root用户设置密码
  2. 删除匿名账号
  3. 取消root用户远程登录
  4. 删除test库和对test库的访问权限
  5. 刷新授权表使修改生效
  • 贴一个地址https://blog.csdn.net/iteye_19615/article/details/82618332 对这个安全脚本讲解、

写个脚本实现 (适用centos7)

#!/bin/bash

##参数1 1决定是去网上下载,否则填写参数0,然后跟目录
# 关防火墙
systemctl stop firewalld
echo "防火墙已关闭"
# 关seLinux
sed -i  's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
echo "selinux已关闭"
# 关seLinux
# ping网络
ping -c 1 -w 1   www.baidu.com &>/dev/null
if [ ! $? ] ; then

echo "请将网卡配置联通网络"
exit 3 ; 
fi

echo "网卡正常"
#yum 源配置
cat  > /etc/yum.repos.d/mysqlscript.repo <<eof
[mysqlyum]
name=mysqlyum
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
penabled=0
eof
echo "阿里yum配置完成,等待检测"
#查看yum是否报错
yum repolist &> /dev/null
if [ ! $? ] ;then
 echo "yum配置出现问题";
exit 3;
fi
#检测文件是否存在
testFile=/etc/yum.repos.d/mysqlscript.repo
if [[ ! -f "$testFile" ]];then
echo"yum源创建失败";
exit 3; 
fi
echo "yum检测完成"

yum -y install  wget  &>/dev/null

if [ ! $? ] ;then

echo "下载出现问题" ;
exit 3
fi

if [[ $1 >=1  ]] ;then
#选择确定从网上下载
    if [ -d "/data" ]; then
    #当data文件夹存在的时候
    mkdir mysql;
    cd /data/mysql;
    echo "正在下载文件请稍等 "
    wget https://downloads.mariadb.org/f/mariadb-10.2.29/bintar-linux-systemd-x86_64/mariadb-10.2.29-linux-systemd-x86_64.tar.gz/from/http%3A//mirror.netinch.com/pub/mariadb/?serve -O mariadb-10.2.29-linux-systemd-x86_64.tar.gz &>/dev/null ;
    
        if [ $?  ] ;then 
            cd /data/mysql;
            fis="mariadb-10.2.29-linux-systemd-x86_64.tar.gz"
            if [  -f $fis ]; then
                echo "下载完成";
            fi
            
        else 

            echo " 下载失败,请重试,或者检查网络 "    
        fi
        
    #当文件夹不存在的时候
    else
    echo "请在跟下分配一个足够空间的/data文件目录,要求大于1G"
    exit 3
    fi

else
    #用户已经下载好了的情况下
    echo "您选择了自行下载放到/data/mysql/下,您选择的是:$2 "
    cd /data/mysql/;
    mardb='mariadb-10.2.29-linux-systemd-x86_64.tar.gz'
        if [  -f $mardb ]; then
             echo "放置成功";
             
    else
        echo $?
        echo "未放置到指定目录,如果放置了,请确保目录名称相同";
     exit 3 ;
        fi
    
        
fi

# 到这一步的时候默认包已经放在了、data下的mysql目录中了

echo "创建系统用户mysql"
useradd -r -u 306 -s /sbin/nologin mysql &> /dev/null
if [ $? ] ;then
echo "系统用户创建完成";

fi

#开始解压压缩包
echo "解压包到/usr/local/下";
pwd
 tar xf mariadb-10.2.29-linux-systemd-x86_64.tar.gz  -C /usr/local/

if [ $? ] ;then
    #解压完成 前往、usr/local下重命名并修改权限
    cd /usr/local/ ;
    echo "解压到当前路径" ;pwd
    
else 

 echo "解压失败" ; exit
fi

# 创建PATH变量
echo "开始创建环境变量脚本"
 cat > /etc/profile.d/mariadb.sh <<eof
#!/bin/bash
export PATH=/usr/local/mysql/bin:$PATH
eof
 cd /etc/profile.d/;
if [ -f mariadb.sh ] ; then
        
    echo "创建成功";
    source /etc/profile.d/mariadb.sh;
    
else 
    echo "创建失败"
    exit 3
fi

#下载依赖包
echo "下载所需io依赖包" ;
yum -y install  libaio ;

if [ $?  ];then
    echo  ”下载完成“;
else

    echo "依赖包下载失败";
    exit 3;

fi

# 执行安装脚本
echo " 开始安装mariadb "
 cd /usr/local/mysql/;
. /scripts/mysql_install_db  --datadir=/data/mysql --user=mysql
if [ $?  ];then
    
    echo "安装完成";
else 
    echo "安装脚本出现问题";
    exit 3 ;
fi

#修改配置文件
echo "正在修改服务端配置文件:/etc/my.cnf"
cat > /etc/my.cnf<<eof
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock

symbolic-links=0

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d
eof

echo "正在修改客户端配置文件:/etc/my.cnf.d/mysql-clients.cnf "

cat > /etc/my.cnf.d/mysql-clients.cnf<<eof
[mysql]
socket=/data/mysql/mysql.sock
[mysql_upgrade]
[mysqladmin]
[mysqlbinlog]
[mysqlcheck]
[mysqldump]
[mysqlimport]
[mysqlshow]
[mysqlslap]
eof
echo "客户端配置文件修改完成"

#将启动程序放到系统启动项中
echo "设置启动文件"
cd /usr/local/mysql/;
cp support-files/systemd/mariadb.service /usr/lib/systemd/system/

#开启服务
systemctl start mariadb
echo "mysql配置完成 "



原文地址:https://www.cnblogs.com/Justin0717/p/11891913.html