• mysql二进制安装


    MYSQL部署

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

    二进制包的安装

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

    安装前配置

    • 默认最小安装
    • 下载对应的包到家目录
    • 推荐使用逻辑卷,这里我就用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/local/ 解压文件到/usr/locad/目录下
    • 改一个名字: cd /usr/local ; mv mariadb-10.2.29-linux-systemd-x86_64 mysql
    • pwd > /usr/local
    • 更改所属用户所属组 : chown -R mysql:root mysql (不是data下的mysql)

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

    • cd /etc/profile.d/ ;
    • vim mariadb.sh
    • 内容:
      1. !/bin/bash

      1. export PATH=/usr/local/mysql/bin:$PATH

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

    执行mysql下的安装脚本

    • cd /usr/local/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 开启方式
    • systemctl 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 对这个安全脚本讲解、

    写个脚本实现

    #!/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
    	mv  mariadb-10.2.29-linux-systemd-x86_64  mysql
    	chown -r mysql:root mysql
    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配置完成 "
    
    
  • 相关阅读:
    最小的K个数
    CentOS 7 连接不到网络解决方法
    数组中超过一半的数字
    字符串的排列
    二叉搜索树与双向链表
    复杂链表的复制
    二叉树中和为某一数值的路径
    二叉搜索树的后序遍历序列
    从上到下打印二叉树
    java的图形文档
  • 原文地址:https://www.cnblogs.com/Justin0717/p/11891913.html
Copyright © 2020-2023  润新知