jqka2 发布的文章

开机后显示“can’t find the mbr”

red hat linux 开机后显示“can’t find the mbr”

昨天才安装好的fedora core 5 可能是因为不正常关机的原因造成了开机后现在"can not find the main boot record"  也就是我的开机引导程序grub出了问题。 于是我就想重新安装grub不就成了吗 。拿出我的超级启动盘上面有一个grub 输入"c" for a command line 然后

root (hd0,0)

具体的分区情况根据自己来定

setup (hd0)

然后在出现成功的信息中有一句是说我的grub缺少一个stage问题不过已经安装好 看来真的是grub的问题

20081108评论:GRUB成为了当时问题不断的关键。  

高二:最近研究的c语言的数个实例,很菜的哦

1:

#include "stdio.h" 
void main()
{
    printf("你好啊? 我靠!\n");
} 

2:

#include "stdio.h" 
void main()
{
    int a,b;
    a=485555;
    b=3825;
    printf("a=%d\n",a);
    printf("%d%d\n",a,b);
    printf("%d%8d\n",a,b);
} 

3:

#include "stdio.h" 
void main()
{
    int A,B,a,b;
    printf("输入一个数,然后按回车键");
    scanf("%d",&A);
    printf("输入一个数,然后按回车键");
    scanf("%d",&B);
    printf("先输入一个数,按空格键后,再输入第二个数,再按回车键");
    scanf("%d %d",&a,&b);
    printf("%d%8d\n",A,B);
    printf("%d%8d\n",a,b);
} 

4:

#include "stdio.h" 
#define RED 0
#define GREEN 1
#define BLUE 2
void main()
{
    int a=66;
    char c='A';
    double salary;
    char name[20]="张国强? 男? 28岁";
    salary=99.99;
    printf("%s\n",name);
    printf("工资 = %8.2f\n",salary);
    printf("\n%d,%x,%c\n",a,a,a);
    printf("%d,%x,%c\n\n",c,c,c);
    printf("红色%2d??? 绿色%2d??? 蓝色%2d\n",RED,GREEN,BLUE);
    printf("\n");
} 

5:

#include "stdio.h" 
#define RED 0
#define GREEN 1
#define BLUE 2 
void main()
{
    int a;
    char name[20]="张国强 男 28岁"; 
    a=sizeof(char);
    printf("size of char = %d\n",a);
    a=sizeof(int);
    printf("size of int = %d\n",a);
    a=sizeof(short int);
    printf("size of short int = %d\n",a);
    a=sizeof(float);
    printf("size of float = %d\n",a);
    a=sizeof(double);
    printf("size of double = %d\n",a); 
    a=sizeof RED;
    printf("\nsize of RED = %d\n",a);
    a=sizeof name;
    printf("size of \'name\' = %d\n",a);
    a=sizeof "file name";
    printf("size of \"file name\" = %d\n\n",a);
}

6:

#include "stdio.h" 
void main()
{
    printf("%d\n",'A');??? //字符A
    printf("%d\n",'\x41');? //字符A
    printf("\n%d\n",'\"');? //双引号
    printf("%d\n",'\'');?? //单引号
    printf("%d\n",'\\');?? //反斜线 
    printf("\n%d\n",'\a');? //响铃
    printf("%d\n",'\b');?? //退格
    printf("%d\n",'\t');??? //tab
    printf("%d\n",'\n');?? //回车换行
    printf("%d\n",'\v');?? //垂直制表
    printf("%d\n",'\f');?? //换页
    printf("%d\n\n",'\r');?? //回车
}

7:

#include "stdio.h" 
int a=66;
void main()
{
    int data[3] = {100,201,3300};
    static char str[ ]={'A','b',67,68,'\0'};
    auto char name[ ]="张国强 男 28岁";
    printf("%d,%d,%d\n",data[0],data[1],data[2]);
    printf("%s\n",str);
    printf("%s\n",name);
    printf("\n");
    a=sizeof data;
    printf("size of \'data\' = %d\n",a);
    a=sizeof str;
    printf("size of \'str\' = %d\n",a);
    a=sizeof name;
    printf("size of \'name\' = %d\n",a);
    printf("\n");
    printf("请输入你的身份证号码\n");
    gets(str);????????? //允许输入的数字间有空格
    printf("\n身份证号码: %s\n\n",str);
    puts(str); //和printf功能相同,
}

8:

#include "stdio.h" 
void main()
{
    double a,b,c;
    a=1155+112.3+11.4+20.5+10.2+5.2+10.1;
    b=a/110.3;
    c=2450*a;
    printf("\n总使用面积=%f 平方米",a);
    printf("利用率=%f %c\n\n",b*100,36);
    printf("售价=%f 元\n\n",c);
} 

就是这些了,才在研究所以都是一些简单的撒.

20081108评论:原来我是2006年开始学C语言的

MySQL 5.6从*.ibd文件恢复数据

MySQL我最常用的两种数据引擎是MyISAM和InnoDB。最近在本地WAMP环境下安装了WordPress博客。某一天发现无法登录WordPress后台了,直接跳转到WordPress的安装页面。看来是PHP无法连接MySQL数据库造成的。我继续用phpMyAdmin、SQLyog等客户端工具连接数据库查询WordPress表数据都返回一句法文错误信息,翻译过来的意思是“该数据表不存在”。打开 D:\wamp\bin\mysql\mysql5.6.17\my.ini配置文件,找到lc-messages=fr_FR修改为lc-messages=en_US 保存信息变为看得懂的英文。但是奇怪的是show tables 显示出来有的表,但是运行select全部报错table doesn't exist.

又打开Windows事件查看器(eventvwr.msc),筛选事件源为MySQL,发现了大量这种的警告信息:

InnoDB: Cannot open table wordpress/wp_posts from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

经过两天两夜的大量Gooogle,发现此文件充斥着网络,貌似是一个普遍问题,而且是一个对MySQL新手来说容易犯的错误。MyISAM数据表.frm可以从一个服务器移动到另外一个服务器,而InnoDB数据引擎则不能直接移动,否则会出现tablespace不一致的问题。这种情况下日志会这种报错:

InnoDB: in InnoDB data dictionary has tablespace id N,
InnoDB: but tablespace with that id or name does not exist. Have
InnoDB: you deleted or moved .ibd files?
InnoDB: This may also be a table created with CREATE TEMPORARY TABLE
InnoDB: whose .ibd and .frm files MySQL automatically removed, but the
InnoDB: table still exists in the InnoDB internal data dictionary.

了解了这么多,中文网络里面的一般做法就是修改my.ini,加上

[mysqld]
innodb_force_recovery = 1

innodb_force_recovery的值可以是1、2、3、4、5、6,具体的含义参见:https://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html。但是我尝试了这样的方法还是找不到数据表。看来从MySQL服务器配置上恢复数据的方法走不通。我想尝试直接通过InnoDB的数据文件ibdata1、ib_logfile0、ib_logfile1,还是wordpress目录下的wp_posts.frm和wp_posts.ibd文件直接恢复。用Winhex分辨查看了以上文件,发现wp_posts.ibd里面有明文的数据内容(记得将Winhex的Charset设置为UTF-8)。然后Google到了从ibd文件恢复数据的方法。此方法略微“复杂”,以下我详细的写一下:

首选需要Linux系统,我这里安装的是最新的Debian 8.0 Jessie,直接通过apt-get加软件库来安装

加入apt签名:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

将以下内容添加到/etc/apt/sources.list,VERSION是版本代码,比如wheezy ,jessie等。

deb http://repo.percona.com/apt VERSION main deb-src http://repo.percona.com/apt VERSION main

更新一下: $ apt-get update

安装Percona Server、Client

$ apt-get install percona-server-server-5.6 percona-server-client-5.6

注意:Percona Server不能和MySQL Server同时共存,安装Percona前请先移除MySQL Serer。

安装完成后登录MySQL

mysql -uroot -ppassword

创建一个数据库

mysql> create database tunps_com; mysql> use tunps_com;

将我丢失数据的WordPress数据库表结构SQL文件导到刚cai