作者:许心怡917 | 来源:互联网 | 2014-05-29 08:43
1.下载源码后,利用cmake工具生成sln文件。如果cmake的过程中出错,可能是因为cmake路径或者代码路径中有中文,或者cmake没有用管理员打开。2.用文本编辑器打开./sql/sql_local.cc文件,将文件以utf-8格式保存,注意不要选择将文件转换为utf-8格式3.设置ms
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即可
从代码启动需要一个数据库的安装路径,下载一个对应版本的安装包安装即可。可能存在兼容问题,所以最好是下载代码对应的版本
在安装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,启动成功
mysqld.exe --datadir=..\data --console
--console应该是命令行启动,不加的话应该会导致以服务方式启动,这样就看不到后台输出了
--datadir=..\data指定的应该是mysqld.exe的当前路径的前一个目录,如果这个目录下的data还没有初始化,则去掉就行,使用my.ini中定义的即可
因为在编译的时候改变了sql_local.cc的文件格式,导致启动的时候assert挂掉
这个应该是字符集的问题,与调试无关,注释掉挂掉的函数重试,可以启动,同时报错,不支持innodb存储引擎
查看vs工程,没有innodb工程,可能是innodb引擎没编进来,用cmake重新生成一下。
Innodb没有编进来的原因是我改了innodb下的makelist文件,当时是为了编译xtradb弄得,将这个文件改回去,重新用cmake生成就好了
然后重新打开工程,debug->start debugging 数据库启动成功 ^_^
mysql.exe连接数据库命令:mysql.exe ?uroot ?p
-uroot 表示以root用户登录 ?p表示使用密码
注:root用户和密码是在安装数据库的时候设置的
连接上后运行use test; 切换到test数据库,这个数据库也是在安装的时候建立的
然后就可以进行简单的建表插入操作了