Mysql中找不到.myd文件的问题
Wordpress用了这么长时间,偶尔会想起来备份下数据,上次是用wp的xml,这次把自己机器的环境配的跟主机提供商基本一样了,正好那边有mysql数据库打包备份的服务,就尝试了一下。可不管我下载哪个时间点的备份包,里面都只有wp表的10个frm文件,copy到我的数据库目录后访问web,没有任何数据!直接搞不懂了。以前觉得用mysql最大的方便就是数据库文件可以直接复制粘贴,后来就推荐周围的人都用。可这么长时间我并没有去仔细研究这个广受好评的产品,我几乎不做后端开发,可以说使用的情况都不多。于是这次copy表没效果,完全不知道为什么。
遂与小力讨论,他也觉得奇怪。而且他跟我用的一个服务商,平常他备份从来没遇到过什么问题。于是让他下一份他数据库的备份给我对比,打开rar包,比我的wp多处N个文件!仔细看,也都是wp的表名,但是每个表名对应3个文件:.frm,.myd,.myi。问题就出在这里了,从字面看出,frm是表结构,myd是mysql数据文件,myi应该是索引吧。而我备份的数据库只有10个表的frm结构,当然看不到数据了!
很郁闷,为什么同一个服务商我的数据库就文件不全?问题我网站上的数据是有的啊!暂时没办法,去找服务商咨询,于是他把我描述的问题验证了,并再次陈述给我——“的确没有myd文件,无法备份”!我晕~!找了做我服务商的朋友,他说继续发问题让技术那边解决,我再次问他们如何彻底解决我备份数据库的问题,结果回答还是我问题的陈述——“没法备份”!要不是看着朋友的面子,早骂开来了!算了,这样的服务商的技术的确没法让人信赖,还是去百度寻求答案!
输入问题,“mysql 没有 myd”,几个情况提到了也仅提到了一个有价值的单词——innoDB。这不就是建表的时候选择数据引擎的那句话嘛,sql语句里面一直都有,却从来没有问过为什么要写这个。继续根据这个关键词挖掘下去,终于找到了我要的答案,这是mysql的两种引擎的差异,innoDB和MyISAM。以前就听说innoDB被收购了,mysql自己弄出了MyISAM,用在自己的6.0版本上。找到两篇文章介绍两个引擎的差异:
详解“InnoDB”和“MyISAM”的不同之处
MySQL中MyISAM引擎与InnoDB引擎性能简单测试
看后终于有一点点理解。不过“详解”的“详”有点假,“简单测试”的“简单”却很实在。找到了问题所在,也找到最后的解决方案,在phpmyadmin里输入
相关文档:
Mysql的安装文件可以直接到 http://www.mysql.com 下载,获得for win32的.zip包,建议选择4.0.20d版本。
下载获得Mysql的for win32安装包后,用winzip解压缩,直接运行setup.exe,需要注意的是选择一个安装路径,当然,安装路径可以任意,建议选择C:\MySQL目录。安装完成后MySQL也就完成了。默认的用户名是root,密码 ......
#include <stdio.h>
#include <windows.h>
#include <mysql.h>
#define host "localhost"
#define username "root"
#define password "123"
#define database "oa"
MYSQL *conn;
int main()
{
MYSQL_RES *res_set;
MYSQL_ROW row;
unsigned int i,ret;
FILE *fp;
MYSQL_FIELD *field;
......
[root@sql21 ~]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.1.26-rc-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database &nb ......
采用的是MySql官方提供的.NET connector,此驱动只需要下载即可使用:http://dev.mysql.com/downloads/connector/net/1.0.html
在使用中积累了几点经验:
1)使用Parameter参数形式提交Command时必须要把"@"号换成"?"号,这一点让我困惑了一天,只是不明白MySQL为何要搞特殊呢,象MS、ODP.NE ......
一、下载MySQL
官方网站:www.mysql.org
二、安装
1.将此压缩包解压缩到制定文件夹下,以"C:/mysql"为例
2.将my-midium.ini复制一份,并重命名为my.ini
3.将C:/mysql/bin/libmysql.dll复制到系统目录下,例如复制到"C:/windows"下
4.在命令行模式下,运行C:/mysql/bin/mysqld,即可开启MySQL服务 ......