系统的事件查看器中可以看到哦载:Table 'mysql.host' doesn't exist的错误
还是不能解决问题参考如下
indows下修改MySQL安装目录和MySQL数据目录
2009-04-04 08:49:20
 标签:MySQL   [推送到技术圈]Windows下安装MySQL,一般的默认目录是c盘,因此在安装完后我们一般会要更改文件的安装目录和MySQL数据目录。
一般的修改方法是:
1》修改my.ini文件。打开之后编辑其中的basedir和datadir,
   [mysqld]
basedir=E:\Program Files\mysql         #修改成你的mysql安装目录
datadir=E:\Program Files\mysql\data    #修改成你的mysql数据目录
2》启动Dos界面,运行net start mysql报错,系统找不到指定路径。
因为我们改变了mysql的安装目录,导致找不到bin启动目录。
修改环境变量,在path路径下加入:E:\Program Files\mysql\bin
3》此时启动mysql,如果还报错误,打开注册表,搜索原来mysql的安装路径,并将其替换为现在新的安装路径。
4》注销下,重新运行net start mysql命令即可。
注意:启动Mysql时碰到了 1067 错误,一般是mysql的配置文件my.ini有问题,打开重点看下里面的basedir和datadir路径是否和你的实际安装目录相同。另外如果还不行,可以重新运行下你的mysql配置向导,重新配置下。下面是从网络上搜集的关于1067错误的解决方案:
安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错。
出错代码:1067
解决办法如下:
1.删除%windows%/my.ini
2.删除其它地方的my.ini
3.在mysql安装目录下把my-small.ini复制为my.ini
4.在my.ini最后一行插入:
 [mysqld]
#设置basedir指向mysql的安装路径
basedir=C:\mysql-5.1.11-beta-win32
datadir=C:\mysql-5.1.11-beta-win32\data
5.重新启动
C:\mysql-5.1.11-beta-win32\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。
系统出错。
发生系统错误 1067。
进程意外终止。
C:\mysql-5.1.11-beta-win32\bin>mysqld-nt --remove
Service successfully removed.
C:\mysql-5.1.11-beta-win32\bin>mysqld-nt --install
Service successfully installed.
C:\mysql-5.1.11-beta-win32\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
C:\mysql-5.1.11-beta-win32\bin>net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
(说明:因为我也是初学mysql,该文章也仅仅是记录自己学习过程中遇到的一些困惑而已,其中的说明只是自己摸索的一些体会,仅供参考,以后会继续完善)

解决方案 »

  1.   

    不知windows如何解决这个问题 lnux找到
    I faced this problem while i was shifting the location of mysql data directory to some non-default location. I copied all the files from /var/lib/mysql(default data location) to the /newdir and changed path in /etc/my.cnf also.When i tried to run the mysql service, It gave following error in /var/log/mysqld.log    Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t existIt seems like service was not able to locate some table in mysql db. Tries few searches and found a solution:Install mysql db again at new location,use following command:mysql_install_db --user=mysql --ldata=/new-data-location
    mysqld_safe --datadir=/new-data-location --user=mysql &I skipped last command and used /etc/init.d/mysqld start
      

  2.   


    贴出这个键值的内容"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL这部分你改了吗?
      

  3.   

    没有看懂 
    贴出这个键值的内容"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL这部分你改了吗?   
    设么意思??
      

  4.   

    修改my.ini文件的datadir和basedir删除原有服务从新注册服务mysqlnew启动服务进入 ok
      

  5.   

    找到 就是这个
    "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL 如何修改?
      

  6.   

    你是要改“C:\Program Files\MySQL\MySQL Server 5.1\my.ini”里面的basedir和datadir吧?
      

  7.   


    今天重启机器时候有一个错误提示说记录到了log里边
    但没仔细看时什么错误
    打开Event Viewer发现有一条Mysql的错误
    Can’t open and lock privilege tables: Table ‘mysql.servers’ doesn’t exist我是Windows2k3 R2系统
    后来翻到两条解决办法:
    第一种解决办法是:进入Mysql的bin目录运行mysql -u root -p mysql
    输入密码后运行
    mysql> SOURCE ../share/mysql_fix_privilege_tables.sql
    这种办法应该是Repair数据库吧?
    第二种解决办法是:
    CREATE TABLE `servers` (
    `Server_name` char(64) NOT NULL,
    `Host` char(64) NOT NULL,
    `Db` char(64) NOT NULL,
    `Username` char(64) NOT NULL,
    `Password` char(64) NOT NULL,
    `Port` int(4) DEFAULT NULL,
    `Socket` char(64) DEFAULT NULL,
    `Wrapper` char(64) NOT NULL,
    `Owner` char(64) NOT NULL,
    PRIMARY KEY (`Server_name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’MySQL Foreign Servers table’;
    这种办法比较简单了,直接建一个Servers表出来就是了~
    不管哪种办法,都是让系统可以检测到Servers这个表存在就是了
    Google的时候看到很多人还有Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist的错误
    处理方法应该和mysql.servers表不存在一样的吧,都是缺啥给它建个啥就行~
      

  8.   

    支持大小写
    lower_case_table_names=2