编程技术分享

  • 首页
  1. 首页
  2. MySQL
  3. 正文

MySQL源码分析系列1——编译环境搭建

2021年12月25日 2722点热度 0人点赞 18条评论

1、安装依赖环境

本文介绍的是Windows平台编译环境搭建,安装过程中路径尽量不要有空格,避免踩坑。

  • Visual Studio,版本:2019
  • MySQL源码,版本:5.7.35
  • cmake,版本:3.22.0,下载地址:http://www.cmake.org/cmake/resources/software.html
  • bison,版本:2.4.1,下载地址:http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-bin.zip
  • bison-deps,版本:2.4.1,下载地址:http://gnuwin32.sourceforge.net/downlinks/bison-dep-zip.php
  • boost,版本:1.59.0,下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.zip
  • openssl,版本:1.1.1m,下载地址:https://slproweb.com/download/Win64OpenSSL-1_1_1m.msi

安装后需要设置环境变量:

2、生成VS解决方案

进入mysql源码目录执行命令,其中参数WITH_BOOST设置为boost安装目录:

cmake -G "Visual Studio 16 2019" -DWITH_BOOST=D:\works\boost_1_59_0 -DWITH_EXAMPLE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MYISAMMRG_STORAGE_ENGINE=1 -DWITH_HEAP_STORAGE_ENGINE=1 -DWITH_CSV_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_NDBCLUSTER_STORAGE_ENGINE=0 -DWITH_DEBUG=1 ./

3、VS打开MySQL.sln,将mysqld设为启动项目

4、调整代码和配置

  • 将sql/sql_locale.cc文件转换为utf-8编码,可以使用notepad++打开该文件,选择使用utf-8 with bom编码,然后保存。
  • 将sql/mysqld.cc文件中函数test_lc_time_sz的以下内容注释掉:

  • 选中mysqld项目,配置启动参数:项目=》配置属性=》调试=》命令参数加上--explicit_defaults_for_timestamp --skip-grant-tables --datadir D:\works\bdc\mysql-server\data。数据目录自定义,但需要提前创建好,否则启动报错。

5、编译调试

6、解决setlocal错误

以上编译调试会遇到setlocal错误:

     解决方式:选中mysqld项目,选择项目-》属性-》生成事件-》在生成中使用,将"是"改为"否"。

7、以上启动是没有初始化并且没有权限管理的服务,如需要初始化,步骤为:

  • 根据之前的方式先编译一个mysqld出来,在sql/Debug目录中
  • 以管理员身份开启命令行然后执行初始化:.\mysqld.exe --initialize-insecure --explicit_defaults_for_timestamp --datadir D:\works\bdc\mysql-server\data。说明:数据目录自定义,需要清空或删除目录,否则会提示目录不为空。
  • 删除之前设置的启动命令参数:--skip-grant-tables
  • 调试运行mysqld
  • mysql -u root -p //连接mysqld,初始没有密码
  • 设置密码:mysql> use mysql;

mysql> alter user 'root'@'localhost' identified with mysql_native_password by '12345';

 

标签: 暂无
最后更新:2022年8月12日

jemuel

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

您需要 登录 之后才可以评论
文章目录
  • 1、安装依赖环境
  • 2、生成VS解决方案
  • 3、VS打开MySQL.sln,将mysqld设为启动项目
  • 4、调整代码和配置
  • 5、编译调试
  • 6、解决setlocal错误
  • 7、以上启动是没有初始化并且没有权限管理的服务,如需要初始化,步骤为:
最新 热点 随机
最新 热点 随机
Volcano源码分析系列—调度篇 K8S源码分析系列1—搭建K8S调试集群 K8S Controller开发 6.5840 Lab 1: MapReduce MongoDB源码分析系列1——编译环境搭建 GraphQL介绍及使用
Golang优先级调度 MySQL源码分析系列2——启动流程 MySQL源码分析系列1——编译环境搭建 Volcano源码分析系列—调度篇 MongoDB源码分析系列1——编译环境搭建 大数据平台之binlog采集方案

COPYRIGHT © 2021 www.miaozhouguang.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

粤ICP备2022006024号

粤公网安备 44030602006568号