zoukankan      html  css  js  c++  java
  • 编译部署mysql5.7.13

    署环境centos7.2+mysql5.7.13
    1、依赖包
    注: 相关依赖包的作用
    cmake:由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译
    器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。
    Boost #从 MySQL 5.7.5 开始 Boost 库是必需的, mysql 源码中用到了 C++的 Boost 库,要求
    必须安装 boost1.59.0 或以上版本
    GCC 是 Linux 下的 C 语言编译工具, mysql 源码编译完全由 C 和 C++编写,要求必须安装
    GCC
    bison:Linux 下 C/C++语法分析器
    ncurses:字符终端处理库
    1)安装 CMAKE 及必要的软件

    将软件放到/usr/local/src/

    安装 cmake

    tar xzf cmake-3.5.2.tar.gz

    cd cmake-3.5.2

    ./bootstrap

    gmake && gmake install

    cmake –version ---查看 cmake 版本

    安装 ncurses

    tar xzf ncurses-5.9.tar.gz

    cd ncurses-5.9

    ./configure && make && make install

    安装bison

    tar xzf bison-3.0.4.tar.gz

    cd bison-3.0.4

    ./configure && make && make install

    安装 bootst
    tar zxf boost_1_59_0.tar.gz
    mv boost_1_59_0 /usr/local/boost

    2) 创建 mysql 用户和用户组及目录
    groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql 
    ---新建 msyql 组和 msyql 用户禁止登录 shell
    #mkdir /usr/local/mysql ---创建目录
    #mkdir /usr/local/mysql/data ---数据库目录

    2、编译安装mysql源码包
    解压mysql源码包:

    tar xzf mysql-5.7.13.tar.gz

    cd mysql-5.7.13

    执行cmake命令进行编译前的配置&编译:

    make -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysqk/data/ -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_HYISAM_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost

    make && make install
    为了加快编译速度可以按下面的方式编译安装
    make -j $(grep processor /proc/cpuinfo | wc -l) && make install
    -j 参数表示根据 CPU 核数指定编译时的线程数,可以加快编译速度。默认为 1 个线程编译。
    若要重新运行 cmake 配置,需要删除 CMakeCache.txt 文件

    配置含义:
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL 安 装 的 根 目录] 
    -DMYSQL_DATADIR=/usr/local/mysql /data [MySQL 数据库文件存放目录]
    -DSYSCONFDIR=/etc [MySQL 配置文件所在目录]
    -DWITH_MYISAM_STORAGE_ENGINE=1 [添加 MYISAM 引擎支持 ]
    -DWITH_INNOBASE_STORAGE_ENGINE=1 [添加 InnoDB 引擎支持 ]
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 [添加 ARCHIVE 引擎支持 ]
    -DMYSQL_UNIX_ADDR=/usr/local/mysql /mysql.sock [指定 mysql.sock 位置 ]
    -DWITH_PARTITION_STORAGE_ENGINE=1 [安装支持数据库分区 ]
    -DEXTRA_CHARSETS=all [使 MySQL 支持所有的扩展字符]
    -DDEFAULT_CHARSET=utf8 [设置 MySQL 的默认字符集为utf8] 
    -DDEFAULT_COLLATION=utf8_general_ci [设置默认字符集校对规则 ] -DWITH_SYSTEMD=1 [可以使用 systemd 控制 mysql 服务] -DWITH_BOOST=/usr/local/boost [指向 boost 库所在目录]

    优化mysql执行路径

    vi /etc/profile

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

    source /etc/profile

    3、设置权限并初始化 MySQL 系统授权表
    cd /usr/local/mysql
    #chown -R mysql:mysql . ---更改所有者,属组,注意是 mysql .
    #bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
    --datadir=/usr/local/mysql/data
    #5.7.6 之后版本初始系统数据库脚本(本文使用此方式初始化)**
    #/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    5、创建配置文件
    cd /usr/local/mysql/support-files ---进入 MySQL 安装目录支持文件目录
    cp my-default.cnf /etc/my.cnf ---复制模板为新的配置文件

    cd /usr/local/mysql-5.7.13/support-files/

    cp my-default.cnf /etc/my.cnf

    官网说:从5.7开始不在二进制包中提供my-default.cnf文件。
    创建文件中配置选项,如下图所示,添加如下配置项
    vim /etc/my.cnf

    [mysql]
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    port = 3306
    server_id = 1
    socket = /usr/local/mysql/mysql.sock
    log-error = /usr/local/mysql/data/mysqld.err

    6、配置mysql自动启动
    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    修改/usr/lib/system/system/mysqld.service

    systemctl daemon-reload
    ss -npatl |grep 3306

    mysql -u root -p /无密码
    alter user root@localhost identified by 'abcD001!'; /密码要满足一定的复杂度,不然不能生效

  • 相关阅读:
    webpack基础
    LeetCode232. 用栈实现队列做题笔记
    mysql 时间加减一个月
    leetcode 1381. 设计一个支持增量操作的栈 思路与算法
    LeetCode 141. 环形链表 做题笔记
    leetcode 707. 设计链表 做题笔记
    leetcode 876. 链表的中间结点 做题笔记
    leetcode 143. 重排链表 做题笔记
    leetcode 1365. 有多少小于当前数字的数字 做题笔记
    LeetCode1360. 日期之间隔几天 做题笔记
  • 原文地址:https://www.cnblogs.com/luck666/p/10185851.html
Copyright © 2011-2022 走看看