先备条件:
1. Visual Studio,这里使用2015版本
2. MySQL5.7源码,这里使用mysql5.7.24版本
3. cmake编译工具
这是GUI图形工具,也可在安装时加入系统环境变量PATH使得可以使用命令行来进行编译。
4. Bison
安装完成后添加环境变量:
5. 准备boost源码1.59.0包,这样不用编译时下载,节省时间
开始编译:
1. 在源码根目录下新建一个子目录,名字随意,然后复制boost1_59_0的源码包到该目录下(或手动指定另外的目录)
2. 进入该目录,执行命令生成visual studio工程项目
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST="D:\usr\path_var\boost_1_59_0.tar.gz" -G "Visual Studio 14"
生成64位的(这里我生成64位的)
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST="D:\usr\path_var\boost_1_59_0.tar.gz" -G "Visual Studio 14 Win64"
生成vs的项目文件:
3.打开mysql.sln解决方案:
按F6编译,结果出现如下一堆错误:
关闭解决方案,打开如下文件,用UTF-8格式保存一次,再打开vs编译:
还是不行,忽然想起,mysql5.5以后是需要cmake编译的了……
cmake --build . --config relwithdebinfo --target package
编译还是报错,把sql_locale.cc用utf-8有bom格式的保存再试一下:
编译成功:
vs也可以编译了:
如果调试,修改mysqld工程的调试参数如下:
启用调试符号:
右键mysqld项目启动实例来查看源码和调试即可。
非调试模式时启动(ctrl +F5)如果报这个错误:
修改mysqld.cc如下部分:
发现default-extral-file参数不起作用,先不管了,因为可执行文件实在sql/debug子目录下,因此,data子目录和my.ini放在和sql同级目录下即可。同时,启动参数需要修改为增加初始化表,否则会启动失败:
再次启动,正常了
这是,先记住这个root密码,然后关掉控制台,把--initialize参数去掉,以免重复初始化,然后再次启动:
navicat也可以连接了: