美文网首页
从源代码构建MySQL

从源代码构建MySQL

作者: kevinfaith | 来源:发表于2019-01-19 14:37 被阅读3次

    简介:

    一直都是用的lnmp一键安装脚本,然后最近想体验一下手动的从源代码安装lnmp的感觉

    环境

    系统:centos7

    准备

    安装一下必要的工具:

    yum install gcc gcc-c++ ncurses-devel perl 
    
    安装CMake

    下载

    wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
    tar -zxvf cmake-3.7.2.tar.gz
    cd cmake-3.7.2
    ./bootstrap
    make
    make install
    
    设置MySQL用户和组:
    新增mysql用户组
    groupadd mysql
    
    新增mysql用户
    useradd -s /sbin/nologin -g mysql -M mysql
    
    创建mysql安装文件夹
    mkdir -p /home/mysql/{data,log,tmp}
    chown -R mysql:mysql /home/mysql/
    

    安装

    下载

    下载mysql

    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz
    tar -zxvf mysql-boost-5.7.23.tar.gz
    
    编译
    cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/mysql-boost-5.7.23.tar.gz/boost
    

    因为我下载的mysql是自带boost库的,所以我直接指定文件路径就好

    编译安装
    make && make install
    

    等他编译完成
    可能需要一会的等待
    编译完成后,添加环境变量

    echo "export PATH=$PATH:/home/mysql/bin">>/etc/profile
    source /etc/profile
    

    接下来配置my.cnf
    这里推荐一个自动生成my.cnf文件的网站
    http://imysql.com/my-cnf-wizard.html
    填写一些必要的信息,然后下载my.cnf文件
    复制到/etc/

    cp my.cnf /etc/
    
    初始化:
    mysqld --defaults-file=/etc/my.cnf --initialize --datadir=/data/mysql/data --user=mysql --basedir=/home/mysql
    
    启动
    mysqld_safe --defaults-file=/etc/my.cnf &
    

    最后添加启动项,这样就可以不用一直用mysqld_safe启动mysql了

    cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld
    

    然后修改一下mysql的密码

    先暂停所有的mysql服务

    /etc/init.d/mysqld stop
    mysqld_safe --skip-grant-tables --skip-networking &
    
    mysql -p
    mysql> update mysql.user set authentication_string=password('password') where user='root' and Host = 'localhos
    

    然后在重新启动mysql,用你上面的密码登录就好了

    相关文章

      网友评论

          本文标题:从源代码构建MySQL

          本文链接:https://www.haomeiwen.com/subject/lszadqtx.html