Linux安装MySQL数据库(使用二进制文件)

Linux安装MySQL数据库(使用二进制文件)

本文档用于安装mysql-5.7.x版本,使用centOS7系统,最下方有写好的安装脚本

  1. 下载二进制压缩包:下载链接。选择5.7.x版本。

    • 选择版本

      请添加图片描述

  2. 安装相应依赖软件

    yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip1 openssl-devel ncurses-compat-libs net-tools lrzsz -y
    
  3. 将之前下载的mysql压缩包导入Linux系统并解压

    # 由于文件较大耗时较久
    # 传送文件可以使用xftp,或者使用rz命令等方法
    tar xf mysql-5.7.x-linux-glibc2.12-x86_64.tar.gz
    
  4. 将源码文件放置在/usr/local/mysql,一般将应用放置在/usr

    mv mysql-5.7.x-linux-glibc2.12-x86_64 /usr/local/mysql
    
  5. 创建mysql组

    groupadd mysql
    
  6. 创建mysql用户,-r创建为系统用户,该用户不允许登录,专门用来启动MySQL服务

    useradd -r -g mysql -s /bin/false mysql
    
  7. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  8. 关闭seLinux

    setenforce 0
    sed -i '/^SELINUX=/ s/enforcing/disbaled/' /etc/selinux/config
    
  9. 创建数据存储路径,并修改文件所有者和权限

    mkdir /data/mysql -p
    chown mysql:mysql /data/mysql
    chmod 750 /data/mysql
    
  10. 进入/usr/local/mysql/bin

    cd /usr/local/mysql/bin
    
  11. 启动mysqld服务(第一次启动mysqld服务时会产生一个临时密码,这里将其所有输出到了password.txt)

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql &> password.txt
    
    • password.txt内容为:
      请添加图片描述
  12. 让MySQL支持ssl方式登录的设置

    ./mysql_ssl_rsa_setup --datadir=/data/mysql/
    
  13. 获得临时密码

```shell
tem_passwd=$(cat password.txt | grep "temporary" | awk '{print $NF}')
```
  1. 导出mysql为环境变量,并且进行永久设置

    export PATH=/usr/local/mysql/bin:$PATH
    # 设置全局永久环境变量,可根据个人设置为单个用户
    # echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
    echo 'PATH=/usr/local/mysql/bin:$PATH' >> /root/.bashrc
    
  2. 复制support-files里的mysql.server文件到/etc/init.d目录下叫mysqld,并修改datadir值

    cp ../support-files/mysql.server /etc/init.d/mysqld
    
    sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
    
  3. 生成/etc/my.cnf配置文件

    cat > /etc/my.cnf << EOF
    [mysqld_safe]
    
    [client]
    socket=/data/mysql/mysql.sock
    
    [mysqld]
    socket=/data/mysql/mysql.sock
    port=3306
    open_files_limit=8192
    innodb_buffer_pool_size=512M
    character-set-server=utf8
    
    [mysql]
    auto-rehash
    prompt=\\u@\\d \\R:\\m  mysql>
    EOF
    
  4. 修改内核参数以满足mysql运行

    ulimit -n 1000000
    echo "ulimit -n 1000000" >> /etc/rc.local
    chmod +x /etc/rc.d/rc.local
    
  5. 设置mysqld开机自启动

    systemctl enable mysqld
    systemctl start mysqld
    
    # 下列命令和上述命令相同效果
    /sbin/chkconfig --add mysqld
    /sbin/chkconfig mysqld on
    systemctl start mysqld
    
  6. 进入mysql服务,由于第一次使用时必须改掉临时密码,并且第一次进行修改密码时应当使用--connect-expired-password参数

    # -u指定用户,-p指定密码,-e后接在mysql中执行的命令,此处为设置密码
    # 不修改密码可以进入mysql服务,但是一旦使用命令就提醒修改密码
    mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='123456';"
    
  7. 运行一条命令检验结果

    mysql -uroot -p'123456' -e "show databases;"
    

将上述命令写成安装脚本

  1. 在Linux中准备好5.7.x的压缩文件,然后创建文件mysql.sh,放在同一文件下

  2. 在mysql.sh复制下列内容,记得改版本号(脚本中为5.7.41)

    #!/bin/bash
    
    # 安装依赖以及工具
    yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip1 openssl-devel ncurses-compat-libs net-tools -y
    
    # 解压mysql源码文件
    tar xf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
    
    # 将源码文件放置在/usr/local/mysql
    mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql
    
    # 创建mysql组
    groupadd mysql
    
    # 创建mysql用户,-r创建为系统用户,该用户不允许登录,专门用来启动MySQL服务
    useradd -r -g mysql -s /bin/false mysql
    
    # 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    
    # 关闭seLinux
    setenforce 0
    sed -i '/^SELINUX=/ s/enforcing/disbaled/' /etc/selinux/config
    
    # 创建数据存储路径
    mkdir /data/mysql -p
    # 修改文件所有者,以及文件权限
    chown mysql:mysql /data/mysql
    chmod 750 /data/mysql
    
    # 进入/usr/local/mysql/bin
    cd /usr/local/mysql/bin
    
    # 启动mysqld服务
    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql &> password.txt
    
    # 让MySQL支持ssl方式登录的设置
    ./mysql_ssl_rsa_setup --datadir=/data/mysql/
    
    # 获得临时密码
    tem_passwd=$(cat password.txt | grep "temporary" | awk '{print $NF}')
    
    # 导出mysql为环境变量
    export PATH=/usr/local/mysql/bin:$PATH
    # 导出为永久的环境变量
    # echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
    echo 'PATH=/usr/local/mysql/bin:$PATH' >> /root/.bashrc
    
    # 复制support-files里的mysql.server文件到/etc/init.d目录下叫mysqld
    cp ../support-files/mysql.server /etc/init.d/mysqld
    
    # 修改datadir值
    sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
    
    # 生成/etc/my.cnf配置文件
    cat > /etc/my.cnf << EOF
    [mysqld_safe]
    
    [client]
    socket=/data/mysql/mysql.sock
    
    [mysqld]
    socket=/data/mysql/mysql.sock
    port=3306
    open_files_limit=8192
    innodb_buffer_pool_size=512M
    character-set-server=utf8
    
    [mysql]
    auto-rehash
    prompt=\\u@\\d \\R:\\m  mysql>
    EOF
    
    # 修改内核参数
    ulimit -n 1000000
    echo "ulimit -n 1000000" >> /etc/rc.local
    chmod +x /etc/rc.d/rc.local
    
    # 将mysql添加到Linux系统服务管理名单里
    /sbin/chkconfig --add mysqld
    # 设置mysqld服务开机启动
    /sbin/chkconfig mysqld on
    
    # 启动mysql服务
    systemctl start mysqld
    
    # 第一次使用mysql时必须修改密码,且第一次修改密码必须使用--connect-expired-password参数
    # -e后面接的表示是在mysql里需要执行命令,execute执行
    # set表示修改密码
    mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='123456';"
    
    # 检验上一步操作结果
    mysql -uroot -p'123456' -e "show databases;"
    
  3. 运行mysql.sh脚本

    bash mysql.sh
    
    # 最后需要重新登录更新环境变量
    su
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值