赞
踩
1. 下载mysql 源码8.0.25的 windows 版本
https://dev.mysql.com/downloads/mysql/
2. 下载依赖库 并安装以下库,注意安装目录不要有空格
下载 bison-2.4.1-setup.exe 并安装
到 http://gnuwin32.sourceforge.net/packages/bison.htm
最终下载链接 https://jaist.dl.sourceforge.net/project/gnuwin32/bison/2.4.1/bison-2.4.1-setup.exe
下载 boost https://www.boost.org/users/history/ 不需要安装
下载文件名为 boost_1_73_0.tar.gz
下载 openssl 并安装
http://slproweb.com/products/Win32OpenSSL.html
Win64OpenSSL-1_1_1k.exe
下载 CMAKE 并安装
cmake-3.19.8-win64-x64
3. Make VS2017 工程
以下步骤参考了官方文档
https://dev.mysql.com/doc/internals/en/cmake-howto-quick-debug-configuration.html
解压 mysql-8.0.25.zip 到
D:\soft\mysql\source\mysql-8.0.25
把boost_1_73_0.tar.gz 放到 D:\soft\mysql\source\boost_1_73_0.tar.gz中
修改 D:\soft\mysql\source\mysql-8.0.25\CMakeLists.txt 注释掉操作系统检查
从33 行到44行 全部注释掉
创建目录 D:\soft\mysql\source\mysql-8.0.25\bld_debug
进入 D:\soft\mysql\source\mysql-8.0.25\bld_debug 目录
执行以下命令
cmake.exe .. -G "Visual Studio 15 2017 Win64" -DWITH_BOOST="D:\soft\mysql\source\boost_1_73_0.tar.gz" -Wno-dev
4. 编译
打开
生成项目解决方案 这很费CPU和内存
这里会有很多意向不到的错误:
1. 在有些 测试文件(以 test开头)中,尤其带有中文的文件,具体哪个文件忘记截图了 需要用NODEPADE++ 打开把文件重新保存为 UTF-8 加BOM 格式
2. 有一个编译错误 中需要添加 #include <string.h>
3. 如果你发现 好多以下错误
我的解决方法(零时)是 修改
D:\soft\mysql\source\mysql-8.0.25\storage\innobase\include\ut0mutex.h
5. 初始化数据库
找到mysqld(mysqld项目是mysql的启动项目,main函数也在其中),右击点到属性,添 --console --initialize-insecure ,然后调试运行
会生成
D:\soft\mysql\source\mysql-8.0.25\bld_debug\data
然后 以以下参数 运行mysqld ,否则无法调试
--console --no-monitor
如果发现以下错误
mysqld: Can't open shared library 'D:\soft\mysql\source\mysql-8.0.25\bld_debug\lib\plugin\component_reference_cache.dll' (errno: 126 找不到指定的模块。)
mysqld: Cannot load component from specified URN: 'file://component_reference_cache'.
拷贝
D:\soft\mysql\source\mysql-8.0.25\bld_debug\plugin_output_directory\Debug\component_reference_cache.dll 到 lib\plugin\component_reference_cache.dll'
如果发现mysqld 直接退出请修改以下文件内容
6. 访问数据库,生成的数据库密码默认为空,直接回车就行
D:\soft\mysql\source\mysql-8.0.25\bld_debug\runtime_output_directory\Debug\mysql.exe -hlocalhost -P3306 -uroot -p
如果发现以下错误
mysql> show databases;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
请执行以下脚本,注意脚本会把密码修改为 123456
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
update mysql.user set host='%' where user='root';
CREATE USER 'mysql.infoschema'@'localhost' IDENTIFIED BY '123456';
grant all privileges on *.* to 'mysql.infoschema'@'localhost';
flush privileges;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。