windows下编译mariadb
2013-10-18 12:45
309 查看
一、 代码编译方式:
源码下载地址:https://downloads.mariadb.org/
windows下编译源码官方文档:https://mariadb.com/kb/en/Building_MariaDB_on_Windows/
1. 下载源码后,利用cmake工具生成sln文件。如果cmake的过程中出错,可能是因为cmake路径或者代码路径中有中文,或者cmake没有用管理员打开
2. 用文本编辑器打开./sql/sql_local.cc文件,将文件以utf-8格式保存,注意不要选择将文件转换为utf-8格式
3. 设置msqld工程为启动项
4. 编译msqld工程,注意不要全部编译所有工程,否则会出错,从错误信息看应该是和sql_local.cc文件一样的错误,碍于文件过多,没有进行更改
利用该方式同样可以正确编译mysql代码
二、 从代码启动工程:
1.右键mysqld工程,选择debug选项,在命令行中填入如下内
-–console
2.Debug->start debugging即可
从代码启动需要一个数据库的安装路径,下载一个对应版本的安装包安装即可。可能存在兼容问题,所以最好是下载代码对应的版本
三、 my.ini文件导致启动失败:
在安装mariadb前安装过mysql,并在windows的目录下创建了my.ini文件记录了mysqld的根目录和数据目录
安装好mariadb后,启动的时候总是报errmsg错误,并且文件路径指向原来安装mysql的路径,因为好久没弄mysql早就忘记了windows下my.ini的存在,所以各种找,就是找不到原因
最终细看mariadb的文档,发现系统启动的时候需要搜索my.ini文件,搜索顺序如下:
GetSystemWindowsDirectory()
GetWindowsDirectory()
C:\
Directory where the executable is located
于是一个一个的找,终于在windows目录下找到了这个文件,改正目录后重新启动mysqldb,启动成功
四、 VS启动mysql的方式:
mysqld.exe --datadir=..\data
--console
l
--console应该是命令行启动,不加的话应该会导致以服务方式启动,这样就看不到后台输出了
l
--datadir=..\data指定的应该是mysqld.exe的当前路径的前一个目录,如果这个目录下的data还没有初始化,则去掉就行,使用my.ini中定义的即可
l
因为在编译的时候改变了sql_local.cc的文件格式,导致启动的时候assert挂掉
这个应该是字符集的问题,与调试无关,注释掉挂掉的函数重试,可以启动
l
同时报错,不支持innodb存储引擎
查看vs工程,没有innodb工程,可能是innodb引擎没编进来,用cmake重新生成一下。(这个需要熟悉cmake的使用,不会的同学看看cmake的帮助文档吧^_^),
当然默认是编进来的
l
Innodb没有编进来的原因是我改了innodb下的makelist文件,当时是为了编译xtradb弄得,将这个文件改回去,重新用cmake生成就好了
然后重新打开工程,debug->start debugging 数据库启动成功 ^_^
五、 用mysql.exe连接服务器进行简单的测试
mysql.exe连接数据库命令:mysql.exe –uroot –p
l
-uroot 表示以root用户登录 –p表示使用密码
注:root用户和密码是在安装数据库的时候设置的
连接上后运行use test; 切换到test数据库,这个数据库也是在安装的时候建立的
然后就可以进行简单的建表插入操作了
六、 VS调试的时候能定位到指定代码的可能原因:
可以参考:http://blog.sina.com.cn/s/blog_88cbbb730100vew6.html
这篇博客讲了warning C4819的解决消除方式,同时验证了在有该警告时,vs无法定位调试代码行
因为是警告,所以应该不影响编译,但是如果其影响到调试,就应该努力解除该警告。最好的方式就是将文件的格式转为正确的格式,文章中说了可以通过vs一个一个的转。虽然可行,但是如果文件过多,这应该不是一个好方法。
源码下载地址:https://downloads.mariadb.org/
windows下编译源码官方文档:https://mariadb.com/kb/en/Building_MariaDB_on_Windows/
1. 下载源码后,利用cmake工具生成sln文件。如果cmake的过程中出错,可能是因为cmake路径或者代码路径中有中文,或者cmake没有用管理员打开
2. 用文本编辑器打开./sql/sql_local.cc文件,将文件以utf-8格式保存,注意不要选择将文件转换为utf-8格式
3. 设置msqld工程为启动项
4. 编译msqld工程,注意不要全部编译所有工程,否则会出错,从错误信息看应该是和sql_local.cc文件一样的错误,碍于文件过多,没有进行更改
利用该方式同样可以正确编译mysql代码
二、 从代码启动工程:
1.右键mysqld工程,选择debug选项,在命令行中填入如下内
-–console
2.Debug->start debugging即可
从代码启动需要一个数据库的安装路径,下载一个对应版本的安装包安装即可。可能存在兼容问题,所以最好是下载代码对应的版本
三、 my.ini文件导致启动失败:
在安装mariadb前安装过mysql,并在windows的目录下创建了my.ini文件记录了mysqld的根目录和数据目录
安装好mariadb后,启动的时候总是报errmsg错误,并且文件路径指向原来安装mysql的路径,因为好久没弄mysql早就忘记了windows下my.ini的存在,所以各种找,就是找不到原因
最终细看mariadb的文档,发现系统启动的时候需要搜索my.ini文件,搜索顺序如下:
GetSystemWindowsDirectory()
GetWindowsDirectory()
C:\
Directory where the executable is located
于是一个一个的找,终于在windows目录下找到了这个文件,改正目录后重新启动mysqldb,启动成功
四、 VS启动mysql的方式:
mysqld.exe --datadir=..\data
--console
l
--console应该是命令行启动,不加的话应该会导致以服务方式启动,这样就看不到后台输出了
l
--datadir=..\data指定的应该是mysqld.exe的当前路径的前一个目录,如果这个目录下的data还没有初始化,则去掉就行,使用my.ini中定义的即可
l
因为在编译的时候改变了sql_local.cc的文件格式,导致启动的时候assert挂掉
这个应该是字符集的问题,与调试无关,注释掉挂掉的函数重试,可以启动
l
同时报错,不支持innodb存储引擎
查看vs工程,没有innodb工程,可能是innodb引擎没编进来,用cmake重新生成一下。(这个需要熟悉cmake的使用,不会的同学看看cmake的帮助文档吧^_^),
当然默认是编进来的
l
Innodb没有编进来的原因是我改了innodb下的makelist文件,当时是为了编译xtradb弄得,将这个文件改回去,重新用cmake生成就好了
然后重新打开工程,debug->start debugging 数据库启动成功 ^_^
五、 用mysql.exe连接服务器进行简单的测试
mysql.exe连接数据库命令:mysql.exe –uroot –p
l
-uroot 表示以root用户登录 –p表示使用密码
注:root用户和密码是在安装数据库的时候设置的
连接上后运行use test; 切换到test数据库,这个数据库也是在安装的时候建立的
然后就可以进行简单的建表插入操作了
六、 VS调试的时候能定位到指定代码的可能原因:
可以参考:http://blog.sina.com.cn/s/blog_88cbbb730100vew6.html
这篇博客讲了warning C4819的解决消除方式,同时验证了在有该警告时,vs无法定位调试代码行
因为是警告,所以应该不影响编译,但是如果其影响到调试,就应该努力解除该警告。最好的方式就是将文件的格式转为正确的格式,文章中说了可以通过vs一个一个的转。虽然可行,但是如果文件过多,这应该不是一个好方法。
相关文章推荐
- 4.MariaDB笔记——MariaDB在Windows源码编译
- 在windows编译MariaDB
- windows下部署openmeetings(已编译好的安装包)
- 编译windows版的openJDK攻略
- Windows下全新编译MongoDB2.04
- 使用Visual Studio Code搭建Windows下的Postgresql编译、调试环境
- 在windows环境中编译ACE/TAO/CIAO注意事项
- Windows下Boot的编译和使用
- 在windows下的qt5.7.1 的纯C或C++项目命令行中文乱码、无法编译等问题解决
- windows平台下vlc编译之十二:用GDB调试vlc
- mysql5.6在Windows下编译
- Sublime Text2 编译和运行C/C++程序(windows)
- 请问各位老大,windows平台下用nmake编译的c程序用甚末debug?
- mariadb的编译安装
- 在Windows下编译iconv
- Windows下编译fast rcnn
- Windows 版caffe 的python接口编译
- 在windows下编译boost 1.32库
- python利用windows编译的sqlcipher工具对sqlite数据库加密
- Windows下的ffmpeg编译