mysql运行出现Can’t open and lock privilege tables: Incorrect file format ‘host’

一个安装lenny-debian系统的小设备,手快升级mysql后再启动mysql出现

120101 15:14:21  InnoDB: Started; log sequence number 0 73553
120101 15:14:21 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
120101 15:14:21 [Note] Starting crash recovery...
120101 15:14:21 [Note] Crash recovery finished.
120101 15:14:21 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect file format 'host'

总是启动不了,google了一下,试验后发现使用下方法可以正常修复
step 1.使用 mysqld --skip-grant 命令启动mysql
step 2.使用 mysqldump 将库数据导出
step 3.使用 mysqladmin shutdown 停止mysqld 服务
step 4.在shell 下进入mysql数据目录,删除下面的 mysql 库
step 5.运行 mysql_install_db 重新创建默认的 mysql 库
step 6.运行mysqld服务,检查导入库数据,重新创建库用户、密码以及设置权限
step 7.执行cat /etc/mysql/debian.cnf 查看 debian-sys-maint帐号密码,运行mysql执行如下命令添加帐号
mysql> GRANT ALL PRIVILEGES ON *.*  TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '前面看到的密码' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
如果已有debian-sys-maint帐号,可以使用如下命令修改密码为前面看到的
mysql>SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('前面看到的密码');
mysql> FLUSH PRIVILEGES;

(如没有重要数据,可以忽略步骤1,2,3)

Popularity: 14% [?]

Random Posts

CYGWIN在Win7下运行的一些小问题解决

换用Win7 64位系统,以前在XP下安装的cygwin环境直接拷贝过来运行有问题。

1.运行 bash -login 命令后,不能加载profile中设置的一些环境变量设置等

主要在注册表 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Cygnus Solutions\Cygwin 下添加如下一些键值,指明安装位置


mounts v2         cygdrive flags  REG_DWORD  22
                       cygdrive prefix REG_SZ   /cygdrive
    /                  flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin
    /usr/bin         flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin\bin
    /usr/lib          flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin\lib

在每个项下添加的native为映射目录对应的本地磁盘路径

2.碰到系统拒绝读取问题

以管理员权限打开一个cmd窗口,执行如下几行命令

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"

Popularity: unranked [?]

Random Posts

给RHEL5补装GCC编译环境

一台新的服务器,安装了最小安装的RHEL,缺少gcc编译环境,一些源码包安装的程序无法安装,需要为其重新补上gcc相关包。

进入备份的RHEL5安装文件目录下,执行 rpm -ivh 命令补上如下rpm包

[root@rhel5 Server]# rpm -ivh kernel-headers-2.6.18-53.el5.i386.rpm glibc-headers-2.5-18.i386.rpm glibc-devel-2.5-18.i386.rpm libgomp-4.1.2-14.el5.i386.rpm gcc-4.1.2-14.el5.i386.rpm libstdc++-devel-4.1.2-14.el5.i386.rpm gcc-c++-4.1.2-14.el5.i386.rpm

再次尝试源码编译,一切正常。

Popularity: unranked [?]

Random Posts

Android中ListView控件的使用

ListView要正常显示需要三个元素

1. 用来显示数据的 ListView 控件
2. 用来显示的数据 data
3. 用来将数据和 ListView 绑定的 ListAdapter

常见ListView风格

Android.R.layout.simple_list_item_1:每一项只有一个TextView
Android.R.layout.simple_list_item_2:每一项有两个TextView,id分别为text1和text2
Android.R.layout.simpte.list_item_single_choice,每一项有一个TextView,但是这一项可以被选中。

常见的ListAdapter子类

1. ArrayAdapter
使用一个数组来存储数据,实际显示数组项中toString()方法获得字符串。

ListView listview=new ListView(this);
  1. // 构造一个listview对象
  2. String[] data = {"item1","item2","item3"};
  3. // 构造一个数组对象,也就是数据
  4. listview.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, data));
  5. //构造一个array适配器,然后listview对象通过setAdapter方法调用适配器来和自己绑定数据
  6. setContentView(listview);

2. SimpleAdapter 派生的 SimpleCursorAdapter 和Sqlite数据绑定
一般用在 Android.R.layout.simple_list_item_2 一行数据有两行数据项的列表
SimpleAdapter需要传入一个数组列表和两个数组,其中数组列表用来存放实际数据,其中每一项为一个map,使用key=value方式存放数据。 两个数组一个为待显示的key名称,另外一个为显示数据的控件id

// 构造数据部分
  1.     List<map>&gt; data = new ArrayList</map><map>&gt;();
  2.     Map item;
  3.  
  4.     item = new HashMap();
  5.     item.put("name","张三");
  6.     item.put("sex","男");
  7.     data.add(item);
  8.  
  9.     item = new HashMap();
  10.     item.put(“name”,”李四”);
  11.     item.put(“sex”,”女”);
  12.  
  13.     data.add(item);
  14.  
  15.     //构造listview对象
  16.     ListView listview= new ListView(this);
  17.  
  18.     /*构造一个适配器。
  19.     *    1,第三个参数是说明用的是系统默认的布局data,android.R.layout.simple_list_item_2
  20.     *    2,第四和第五个参数一起理解:
  21.     *          把我们添加数据时姓名那一列对应到android.R.id.text1这个TextView中,把性别对应到android.R.id.text2这个TextView中。
  22.     */
  23.     SimpleAdapter adapter = new SimpleAdapter(this,
  24.         data,
  25.         android.R.layout.simple_list_item_2,
  26.         new String[]{"name","sex"},
  27.         new int[]{android.id.text1,android.R.id.text2});
  28.  
  29.     // 设置显示
  30.     listview.setAdapter(adapter);
  31.     setContentView(listview);
  32. </map>

Popularity: unranked [?]

Related

Android动态挂载事件处理

好处,
1. 对代码块清晰方便阅读
2. 可以动态修改按钮的处理行为
如下列举了一下事件处理动态挂载处理方式

对Click事件做处理

private View.OnClickListener btnHandler = new View.OnClickListener() {
  1.      public void onClick(View v) {
  2.             // doBtn Cmd
  3.       }
  4.     };
  5.  
  6.     btn.setOnClickListener(btnHandler);

对ListView的ItemClick事件做处理

AdapterView.OnItemClickListener listClickHandler = new AdapterView.OnItemClickListener() {
  1.   @Override
  2.   public void onItemClick(AdapterView av, View v, int selID, long resid ) {
  3.      switch (selID) {
  4.   case 0: // cmd0
  5.       doCmd0();
  6.       break;
  7.   case 5: // about
  8.        showAbout();
  9.        break;
  10.   }
  11.       }
  12.   };
  13.  
  14.    listView.setOnItemClickListener(listClickHandler);

Popularity: unranked [?]

Related

在Android使用AlterDialog输入简单数据

使用AlterDialog实现其他语言类似InputBox之类的简单数据输入。

AlertDialog.Builder alert = new AlertDialog.Builder(this);
  1.  
  2.    alter.setIcon(getResources().getDrawable(R.drawable.icon));
  3.    alert.setTitle("输入框标题");
  4.    alert.setMessage("输入提示信息");  
  5.  
  6.    // 添加一个EditText输入数据
  7.    final EditText input = new EditText(this);
  8.    alert.setView(input);  
  9.  
  10.    alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {
  11.    public void onClick(DialogInterface dialog, int whichButton) {
  12.      String value = input.getText();
  13.        // 对输入的数据做处理
  14.      }
  15.    });  
  16.  
  17.    alert.setNegativeButton("取消", new DialogInterface.OnClickListener() {
  18.      public void onClick(DialogInterface dialog, int whichButton) {
  19.        // 做取消输入的事情
  20.      }
  21.    });
  22.     //显示对话框等待输入数据
  23.    alert.show();

Popularity: unranked [?]

Related

XCode4将已存在的cvs工程添加到git库中

XCode4去除了一些版本库的支持,现在只支持git和svn,早先使用的cvs库就需要做下处理,才能继续使用XCode集成的版本库功能。

添加到本地 git 库中

步骤1. 在终端下先转到项目所在目录
步骤2. 执行 git init 创建本地库
步骤3. 使用 vi .gitignore 添加要忽略的目录和文件
步骤4. 使用 git add .gitignore
步骤5. 执行 git commit “初始化库”
步骤6. 添加所有项目文件 git add -A
步骤7. 执行 git commit “初次代码入库”

经过以上处理后,再在XCode4打开项目,发现已经可以使用集成的git版本库功能了。

Popularity: unranked [?]

Random Posts

一些在iOS开发中很好用的开源库地址

JSON 这个不用说了,JSON的编解码

http://stig.github.com/json-framework/

ASIHttpRequest 简化了Http相关操作处理

http://allseeing-i.com/ASIHTTPRequest/

MBProgressHUD 做等待提示很好用

https://github.com/jdg/MBProgressHUD/

MHNibTableViewCell 简化TableViewCell的制作

http://cocoawithlove.com/2010/12/uitableview-construction-drawing-and.html

https://github.com/hollance/MHNibTableViewCell

InAppSettingKit 做程序内偏好设置很方便

http://www.inappsettingskit.com/

https://github.com/futuretap/InAppSettingsKit

MkStoreKit 很好的程序内购买的包封装

http://blog.mugunthkumar.com/coding/introducing-mkstorekit-%E2%80%93-version-3/

其他一些好包推荐介绍地址

http://mobile.csdn.net/a/20110317/294018.html

Popularity: unranked [?]

Random Posts

在 Android 程序中禁止屏幕旋转和避免重启Activity

禁止屏幕随手机旋转变化

有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:
在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入 android:screenOrientation=”landscape” 属性。

  • landscape = 横向
  • portrait = 纵向
  • 避免在转屏时重启Activity

    android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次 Create的时候载入配置,那样,进行中的游戏就不会自动重启了!
    要避免在转屏时重启Activity,可以通过在AndroidManifest.xml文件中重新定义方向(给每个Activity加上 android:configChanges=”keyboardHidden|orientation”属性)。
    在需要控制屏幕显示方向的Activity中重写 onConfigurationChanged(Configuration newConfig)方法,这样在转屏时就不会重启Activity了。

    if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
    1.   //横向
    2.   setContentView(R.layout.file_list_landscape);
    3. }else{
    4.   //竖向
    5.    setContentView(R.layout.file_list);
    6. }

    在模拟器中可以按 CTL+F11 模拟做屏幕旋转。

    Popularity: unranked [?]

    Related

    Android NDK调试碰到signal 11 (SIGSEGV), fault addr deadbaad

    使用NDK开发的so文件在运行时崩溃,日志中提示
    signal 11 (SIGSEGV), fault addr deadbaad
    然后后面列出了一些寄存器值和pc代码行,stack等信息,根据pc代码行配合 arm-eabi-addr2line可以发掘出错位置所对应的函数名。用法如下;
    arm-eabi-addr2line -f -e libmyjni.so 0×00024039 (输出日志中最上面的pc值,可以回溯最终函数调用顺序)

    程序中需要有符号信息,不能使用下面的语句将调试符号剔除
    build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-strip –strip-debug apps/NDKTest/project/libs/armeabi/libmyjni.so

    Popularity: unranked [?]

    Related

    Next Page →