zoukankan      html  css  js  c++  java
  • 51ak带你看MYSQL5.7源码2:编译现有的代码

    从事DBA工作多年

    MYSQL源码也是头一次接触

    尝试记录下自己看MYSQL5.7源码的历程

    申明:个人Python编程很溜,但是C++还停在白痴水平,源码理解方面有点弱,如发现有错误的地方,轻喷

    目录:

    51ak带你看MYSQL5.7源码1:main入口函数 (2018-03-21)

    51ak带你看MYSQL5.7源码2:编译现有的代码 (2018-03-22)

    51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本 (2018-03-23)

    51ak带你看MYSQL5.7源码4:实现SQL黑名单功能(2018-04-11)

    现在把刚才在VSCODE里看到的源码,安装成服务。

    测试机:CENTOS6 (虚机配置为4c+4g ),

     YUM安装相关组件

     yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison

    执行完成后看一下现有的BOOTST版本 如果有删掉

    root@wjz-3-227 ~]# rpm -qa boost*
    boost-filesystem-1.41.0-18.el6.x86_64
    boost-system-1.41.0-18.el6.x86_64
    [root@wjz-3-227 ~]#  yum -y remove boost-*
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Remove Process
    Resolving Dependencies
    --> Running transaction check

    上传我们编辑好的文件到测试机,放在/work目录下

    拷贝安装BOOST

    root@wjz-3-227 mysql-server]# ll
    total 108
    drwxr-xr-x.  8 root root  4096 Mar 22  2018 boost_1_59_0
    -rw-r--r--.  1 root root   160 Dec 28 12:00 filter-provides.sh
    -rw-r--r--.  1 root root   176 Dec 28 12:00 filter-requires.sh
    drwxr-xr-x. 32 root root  4096 Mar 22  2018 mysql-5.1.72
    drwxr-xr-x. 35 root root  4096 Mar 22  2018 mysql-5.7.21
    -rw-r--r--.  1 root root 88859 Dec 28 12:00 mysql.spec
    [root@wjz-3-227 mysql-server]# cp -r  boost_1_59_0 /usr/local/boost

    执行以下脚本

    groupadd mysql
    mkdir /home/mysql
    mkdir /home/mysql/data
    useradd mysql -g mysql -d /home/mysql
    
    cd mysql-5.7.21/
    mkdir debug
    cd debug

    开始MAKE

    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  
    -DDOWNLOAD_BOOST=1  
    -DWITH_BOOST=/usr/local/boost

    出现 下图表示成功。

     make -j 4 

    漫长的等待,编译成功(测试机性能太次)

    下面安装和初始化:

    make install 
    make clean 
    rm -f CMakeCache.txt 
    cd /home/mysql
    chown -R mysql:mysql .
    ll
     bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data #这一步记住生成的密码,一会要用
    ll data/
    vim /etc/my.cnf 
    vim mysql.server 
    cp mysql.server  /etc/init.d/mysqld3306
    chmod 755 /etc/init.d/mysqld3306 
    cd ..
    ll
    service mysqld3306 start
    bin/mysql -h127.0.0.1 -uroot -p

    好,今天到此为止

  • 相关阅读:
    平衡树(Splay):Splaytree POJ 3580 SuperMemo
    数据结构:(平衡树,链表)BZOJ 1588[HNOI2002]营业额统计
    主席树:HDU 4417 Super Mario
    主席树:POJ2104 K-th Number (主席树模板题)
    后缀数组模板
    后缀数组:HDU1043 Longest Common Substring
    后缀数组:SPOJ SUBST1
    关于PHP程序员解决问题的能力
    现在写 PHP,你应该知道这些
    PHP 7 的几个新特性
  • 原文地址:https://www.cnblogs.com/wokofo/p/8625662.html
Copyright © 2011-2022 走看看