调试MySQL中遇到的问题

凉水代码:MySQL数据故障时备份与恢复
地址:http://www.cnblogs.com/codewater/articles/1764769.html

==========================================================================================

mikan: mysql安装常见问题(系统找不到指定的文件、发生系统错误 1067 进程意外终止)

地址:http://blog.csdn.net/mhmyqn/article/details/17043921

===============================================================================================================================

标题:mysql 2003以及10061错误

地址: http://jingyan.baidu.com/article/86fae346df9b083c49121a03.html

用了以上方法还是没有启动mysql,最后删除了 ib_logfile0和ib_logfile1 才 启动成功

==============================================================================

1.在win7系统下执行开启、停止mysql服务时发生错误。

   命令:net start mysql 、net stop mysql

   错误:服务名无效,请键入net helpmsg 2185 以获得更多帮助

  解决办法:

原因是mysql没有加入到window的服务中

我的解决方法是命令行进入mysql安装路径,输入mysqld --install

例如  我的安装路径为D:\Program Files\MySQL,再进去bin目录,mysqld --install

(我的安装路径为D:\Program Files\MySQL)

回车,提示成功,接下来,我输入net start stop mysql,却提示"服务正在启动或停止中"

后来才发现,我安装的是MySQL5.6的版本,在自定义安装的过程默认服务名为mysql56,

所以,启动服务的命令为"net start stop mysql56",回车,mysql正常启动

关于卸载,就要删除注册表、安装目录和卸载程序

删除的注册表主要是

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除

参考自:http://www.xuebuyuan.com/2057931.html

-------------------------------------------------------------------------------------------------------------------------

问题原因:mysql服务没有安装。

解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令

然后仍然以管理员的权限 net start mysql 开启Mysql服务了。

附卸载mysql服务的方法。

1、以管理员的权限 net stop mysql ,关闭mysql服务

2、以管理员的权限 mysqld -remove ,卸载mysql服务

参考自:http://www.jb51.net/article/51428.htm

=================================================================================================

2.在运行net start mysql 开启服务时,发生系统错误。

   命令:net start mysql

  错误:发生系统错误5,拒绝访问。

   解决方法:因为当前用户的操作权限太低了,切换到管理员模式就可以启动了。所以我们要以管理员身份来运行cmd程序来启动mysql。

=============================================================================================================================

3.在运行net start mysql时,服务无法启动。

   命令:net start mysql

   错误:无法启动MySQL服务,错误1067

   解决办法:

1.删除datadir 下的用户数据库文件 和 日志文件 (ib_logfile0,ib_logfile1)。

2.删除innodb表空间ibdata1

3.启动mysql服务:

4.导入数据:

5.檢查數據:

虽然这方法简单,但需要mysqldump導出的數據文件進行還原。

本方法转载自:



===============================================================================================================================

4.删除MySQL->data->test 文件夹,再运行程序发生错误。

   错误:Error 1813 : Tablespace for table *** exists. Please DISCARD the tablespace before IMPORT.

   解决办法:

最后终于找到解决办法如下:

1、关闭所有mysql操作,停止mysql服务。

2、找到安装目录下的数据库文件,应该在你安装目录下的data文件夹下,然后打开你对应的数据库名的文件夹。找到那个表对应的文件,还有损坏的文件,一并删除。

数据库中的文件名,应该是和你的表名一一对应的,一个表,两个文件,一个数据文件,一个是日志文件,除了这个还有一个“db.opt”文件不要删除。其他的乱码的文件,和原来你出错的文件全部删除。

3、完了以后重新启动mysql服务,重新添加那个同样名字的表就可以添加成功了。

   本方法转自:http://www.bkjia.com/Mysql/887072.html

================================================================================================================================

5.运行程序,表已经存在。
  错误:Error 1050(42S01): Table already exists

  解决办法:

造成该问题的可能原因:

1:用Java读取SQL文件,并执行其中的sql语句,但是中间执行错误,导致创建数据库或者创建表格失败;


2:在MySQL服务未关闭(进程中有mysqld.exe或mysql.exe)情况下,手动对MySQL的data目录下的数据库进行操作(删除、移动等)



解决办法:

1:使用命令

DROP TABLE IF EXISTS tablename;

REPAIR TABLE tablename;



如下图所示:



2:考虑MySQL的存储引擎,默认的是default-storage-engine=InnoDB,如果创建的数据库的引擎是MyISAM,则要在配置文件my.ini中将语句做对应的修改

注:该方法在网上搜到的,本人尝试后发现不受该设置影响,不过您可以做一下尝试的 呵呵


MyISAM和InnoDB存储引擎的比较

主要区别:

•MyISAM是非事务安全型的,而InnoDB是事务安全型的。

•MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

•MyISAM支持全文类型索引,而InnoDB不支持全文索引。

•MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

•MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。

•InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。


应用场景:


•MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

•InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提 高多用户并发操作的性能。


3:主要的原因大部分是因为还没有停止MySQL服务就手动对data目录下的数据库进行人工操作,导致虽然在目录下看不到该数据库以及其中的表格,或者通过命令也无法查找到对应的表格,但是无论如何都不能创建对应的表格,出现1050错误,原因是mysql服务的未关闭,导致存储空间中仍旧保留着该表的记录。


所以只要在停止服务后,再手动去data目录下删除该数据库,然后重启mysql服务,应该就可以再次创建对应的数据库以及表

本方法转自:http://m.blog.csdn.net/blog/handancq/26069153

========================================================================================================================

6. 运行程序,语法错误。

   错误:ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to            use near ‘TYPE=MyISAM’ at line 6

   解决方法:这一般是由语法错误造成的。

第一是,修改语法错误。

第二是,使用了Python的保留字,用[ ]起来。

=======================================================================================

7.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值