mysql vs2008_mysql在windows下的编译和调试(vs2008)

mysql在windows下的编译和调试(vs2008)

环境准备

如下:

720bdc15ad87ce68db4f9fc9b42540df.png

2.安装CMake

下载地址:编译器,记得Linux下的make么, 没错这个就是他哥,进阶版。3.安装GNUWin32 Bison

编译

进入mysql的根目录下,输入cmake . -G "Visual Studio 9 2008",正常的话会有XXX done什么的

成功的话会有MySQL.sln和一大堆.vcproj文件,打开MySQL.sln,就可以看到整个解决方案

在编译之前,建议打开sql/sql_locale.cc文件,将其用utf-8格式再保存一遍,不然编译过程当中会有大量错误。

应该就可以编译成功。

到sql/debug 下执行

mysqld-debug --debug –-standalone

应该会出现错误,提示你mysqld.cc中的某个断言有问题,把那段注解掉重新编译。

编译完以后继续

mysqld-debug --debug –-standalone

发现还是起不来mysqld的进程。

查看log文件

mysqld.exe: Table 'mysql.plugin' doesn't exist

120414 11:34:08 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

120414 11:34:08 InnoDB: !!!!!!!! UNIV_DEBUG switched on !!!!!!!!!

120414 11:34:08 InnoDB: The InnoDB memory heap is disabled

120414 11:34:08 InnoDB: Mutexes and rw_locks use Windows interlocked functions

120414 11:34:08 InnoDB: Compressed tables use zlib 1.2.3

120414 11:34:08 InnoDB: Initializing buffer pool, size = 128.0M

120414 11:34:08 InnoDB: Completed initialization of buffer pool

120414 11:34:08 InnoDB: highest supported file format is Barracuda.

InnoDB: The log sequence number in ibdata files does not match

InnoDB: the log sequence number in the ib_logfiles!

120414 11:34:08  InnoDB: Database was not shut down normally!

InnoDB: Starting crash recovery.

InnoDB: Reading tablespace information from the .ibd files...

InnoDB: Restoring possible half-written data pages from the doublewrite

InnoDB: buffer...

120414 11:34:09  InnoDB: Waiting for the background threads to start

120414 11:34:10 InnoDB: 1.1.8 started; log sequence number 1595675

120414 11:34:10 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

意思是mysl下的表没有建立,很奇怪这个不知道是什么原因,我是到别的地方拷贝了mysql下的文件放到sql/data/mysql下

5cc7113a7f13a89bd74f312bda95a139.png

如果没有什么意外

执行

mysqld-debug --debug –-standalone

就可以建立启动mysqld进程了。

使用vs2008进行调试

测试---》附加到进程

2f66d05898b0e6cf531de60fd55b95f7.png

选择mysqld

定位到\client\Debug,执行命令“mysql -u root -p”,进入mysql客户端,

在这边下断点:

400f3b538e01e7edc193c1d3287757d3.png

在mysql客户端下:

show authors;

b80a29c00afc152c75256df331d23e4b.png

就可以进入断点进行调试:

35f951624bf1b193d31309f53be1f5e7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值