zoukankan      html  css  js  c++  java
  • Macos 编译运行调试Mysql源代码

    准备编译工具Clion

    下载地址

    工具是macos用的系统

    百度云盘下载地址(密码: 7dus)

    下载mysql源码

    Mysql源码下载地址

    下载boost

    boost下载地址

    前期准备工作

    • MySQL源码目录:/Users/baiyuliuguang/Documents/study/mysql/mysql-8.0.4-rc
    • MySQL编译工作目录[basedir]:/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc
    • MySQL编译后的数据目录[datadir]:/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data

    这些目录其中有的是自己创建的,我展示的是我绝对路径,大家可以放在其他位置,只要配置的时候配置好就行了。

    搭建Mysql

    编译Mysql

    • 第一步进入源码目录
    cd /Users/baiyuliuguang/Documents/study/mysql/mysql-8.0.4-rc/
    
    • 第二步cmake
    cmake 
    -DCMAKE_INSTALL_PREFIX=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc 
    -DMYSQL_DATADIR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data 
    -DSYSCONFDIR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc 
    -DMYSQL_UNIX_ADDR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data/mysql.sock 
    -DWITH_DEBUG=1  
    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/Users/baiyuliuguang/Documents/study/mysql/boost_1_65_0
    

    -w780

    • 第三部 make
    make -j 4
    

    -w1013

    • 第四步 安装
    make install -j 4
    

    -w837

    • 第五步 初始化数据库
    1. cd /Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/bin
      2../mysqld --basedir=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc --datadir=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data --initialize-insecure --user=baiyuliuguang

    -w1688

    配置Clion

    导入MySQL源码项目

    选择路径:/Users/baiyuliuguang/Documents/study/mysql/mysql-8.0.4-rc, 导入后,clion会默认用系统自动的makefile文件make一遍,如果系统自带的boost不是1.65.0的话,会有报错,不用处理,接下来cmake配置后,不会有这问题;

    TIP
    选择cmake项目

    cmake 配置

    clion -> Preferences -> Build,Execution,Deployment -> CMake

    -w1119

    -DCMAKE_INSTALL_PREFIX=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc   -DMYSQL_DATADIR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data  -DSYSCONFDIR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc   -DMYSQL_UNIX_ADDR=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data/mysql.sock  -DWITH_DEBUG=1   -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/Users/baiyuliuguang/Documents/study/mysql/boost_1_65_0
    
    • 配置debug

    -w651

    点击Edit Configurations

    // 1 中的Target和Executable 都选择mysqld
    // 2 中写一个Name,由于上一步已经写了mysqld,这里再次写mysqld,提示已经有应用是mysqd了,这里写的是mysqld2
    // 3 中写的是
    --defaults-file=/Users/baiyuliuguang/Documents/study/mysql/etc/my.cnf
    --basedir=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc
    --datadir=/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/data
    // 4 中是MySQL编译后的Home路径
    

    其中配置my.cnf

    my.cnf的文件内容如下

    [mysqld]
    port            = 3306
    
    socket          = /Users/baiyuliuguang/Documents/study/mysql/tmp/mysql.sock
    
    skip-external-locking
    skip-grant-tables
    
    key_buffer_size = 16K
    
    default-storage-engine=INNODB
    character-set-server=utf8
    
    pid-file=/Users/baiyuliuguang/Documents/study/mysql/mysqld/mysqld.pid
    
    [mysqld_safe]
    
    pid-file=/Users/baiyuliuguang/Documents/study/mysql/mysqld/mysqld.pid
    
    [client]
    default-character-set=utf8
    

    其中没有的文件夹要自己创建

    -w1068

    • 至此所有的都配置好了,点击debug臭虫,就可以启动MySQL。

    -w1792

    调试

    • 找到sql/sql_parse.ccdo_command函数,设置断点

    -w881

    • 登录MySQL,需要进入/Users/baiyuliuguang/Documents/study/mysql/mysql_data/mysql-8.0.4-rc/bin下面执行, 直接enter回车即可,root初始化密码为空密码mysql -uroot -h127.0.0.1 -P3306 -p

    -w1478

    遇到的问题

    如果遇到已经有mysql占用端口

    记得关掉这边的myql服务

    -w662
    -w668

  • 相关阅读:
    Agile software architecture design document style..( sketches and no UMLs)
    spring mvc 使用Optional
    API reference for many languages..
    Java 8: Lambdas和新的集合Stream API
    Java 8 Stream API Example Tutorial
    小团队开发管理工具:gitlab+redmine+testlink+jenkins
    达到一定高度,回到头部的代码
    一款非常简单的android音乐播放器源码分享给大家
    高仿精仿开心网应用android源码
    很不错的安卓FadingActionBar控件源码
  • 原文地址:https://www.cnblogs.com/yantt/p/macos-bian-yi-yun-xing-diao-shimysql-yuan-dai-ma.html
Copyright © 2011-2022 走看看