zoukankan      html  css  js  c++  java
  • MySQL编译安装

    MySQL编译和安装

    CentOS7中编译安装MySQL 5.7.21.

    依赖和源码包

    安装相关的依赖:

    yum install gcc gcc-c++ ncurses ncurses-devel cmake bison -y
    

    下载MySQL 5.7.21源码包和依赖boost, MySQL 5.7.21依赖boost 1.59.0:

    curl -o boost_1_59_0.tar.gz https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
    curl -o mysql-5.7.21.tar.gz http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz
    

    解压下载的包:

    # 进入下载的路径
    
    # 解压到/usr/local/目录
    tar -xzvf boost_1_59_0.tar.gz -C /usr/local/
    # 解压到当前目录
    tar -xzvf mysql-5.7.21.tar.gz
    

    创建用户和组

    创建MySQL用户和组, 并且用户不能登陆:

    groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
    

    创建相关的目录

    • 创建数据目录
      mkdir -p /data/mysql && chown mysql.mysql /data/mysql
      
    • 创建log目录
      mkdir -p /var/log/mysql && chown mysql.mysql /var/log/mysql
      
    • 创建UNIX SOCK目录
      mkdir -p /var/lib/mysql && chown mysql.mysql /var/lib/mysql
      
    • 创建PID目录
      mkdir -p /var/run/mysqld && chown mysql.mysql /var/run/mysqld
      

    预编译

    使用各种参数, 预编译源代码. 进入解压的MySQL源码目录, 执行以下命令:

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/data/mysql 
    -DSYSCONFDIR=/etc 
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysqld.sock 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DENABLED_LOCAL_INFILE=1 
    -DENABLED_PROFILING=1 
    -DMYSQL_TCP_PORT=3306 
    -DWITH_DEBUG=0 
    -DDOWNLOAD_BOOST=1 
    -DWITH_BOOST=/usr/local/boost_1_59_0
    
    DCMAKE_INSTALL_PREFIX=/usr/local/mysql      :安装路径
    DMYSQL_DATADIR=/data/mysql                  :数据文件存放位置
    DSYSCONFDIR=/etc                            :my.cnf路径
    DMYSQL_UNIX_ADDR=/var/lib/mysql/mysqld.sock :连接数据库socket路径
    DEXTRA_CHARSETS=all                         :安装所有的字符集
    DDEFAULT_CHARSET=utf8                       :默认字符
    DDEFAULT_COLLATION=utf8_general_ci          :排序集
    DWITH_MYISAM_STORAGE_ENGINE=1               :支持MyIASM引擎
    DWITH_INNOBASE_STORAGE_ENGINE=1             :支持InnoDB引擎
    DWITH_PARTITION_STORAGE_ENGINE=1            :安装支持数据库分区
    DENABLED_LOCAL_INFILE=1                     :允许从本地导入数据
    DENABLED_PROFILING=1                        :
    DMYSQL_TCP_PORT=3306                        :端口
    DWITH_DEBUG=0                               :
    DDOWNLOAD_BOOST=1                           :允许下载
    DWITH_BOOST=/usr/local/boost_1_59_0         :本地boost路径
    

    编译安装

    预编译完成后, 执行下面的命令编译, 安装:

    # 指定CPU数量编译
    make -j `grep processor /proc/cpuinfo | wc -l` && make install
    

    添加开机自启

    对目录修改权限, 添加service/systemd服务:

    chown -R mysql:mysql /usr/local/mysql
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    
    # 开机自启
    chkconfig --add mysqld
    chkconfig mysqld on
    

    环境变量

    /usr/local/mysql/bin添加进入环境变量, 或者直接使用软链接的方式链到/usr/local/bin下:

    # 添加到环境变量
    echo "" >> /etc/bashrc
    echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/bashrc
    echo "" >> /etc/bashrc
    source ~/.bashrc
    
    # 使用软链接
    ln -s /usr/local/mysql/bin/* /usr/local/bin/
    

    初始化数据库

    以上都完成后, 还不能启动MySQL, 如果非要启动, 会报错. 需要初始化数据库:

    /usr/local/mysql/bin/mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    
    --user      :指定用户
    --basedir   :mysql所在目录
    --datadir   :mysql数据库和表所在的目录, 以及PID文件
    

    初始化后, 会有一行提示, 冒号后面的是初始密码root@localhost: password:

    A temporary password is generated for root@localhost: xKefZvib13)5
    

    启动服务

    以上都配置完成, 就可以启动服务了:

    # 使用service
    service mysqld start
    
    # 使用systemd
    systemctl daemon-reload
    systemctl start mysqld
    

    修改密码

    将初始密码修改成自己的密码, 直接在shell中输入命令: mysqladmin -uroot -p'old_pass' password 'new_pass'

    配置文件

    默认MySQL不需要配置文件, 编译时已经配置好了, 但是也可以使用配置文件, 指定log的位置, 编辑vim /etc/my.cnf, 将以下内容添加到文件中:

    [mysqld]
    datadir=/data/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    [mysqld_safe]
    log-error=/var/log/mysql/mysqld.log
    # pid-file=/var/run/mariadb/mariadb.pid
    
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
    
  • 相关阅读:
    处理sevenzipsharp 检查密码函数的Bug
    C# 开源压缩组件比较
    css 一些技巧
    input 限制输入
    原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
    js string.format 方法
    Atom插件及使用
    chrome浏览器的跨域设置-包括版本49前后两种设置 ,windows&mac
    原生js监听input值改变事件
    html5 tab横向滚动,无滚动条(transform:translate)
  • 原文地址:https://www.cnblogs.com/zzhaolei/p/11068054.html
Copyright © 2011-2022 走看看