当连接mysql时,出现了错误,提示为:
#2003-can't connect to mysql server on 'localhost'(10061)
一般来说该提示是因为mysql没有启动,启动mysql服务即可解决。
但是在myql服务已经启动时,依然遇到该问题,此时问题就不一定了。
大多数的情况,是mysql相关配置问题,及my.ini中的某些配置参数出现了状况。具体问题可查看日志进一步判断,以下为一些类似的现象及解决的方法,摘录仅供参考:
参考1、
1、打开my.ini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM。
2、删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile1
3。找到在配置MySQL服务器时指定的InfoDB目录删除掉ibdata1
根据my.ini文件中:
#*** INNODB Specific options ***
innodb_data_home_dir="D:/"。
4。重新启动MySQL的Service
根据我自己的实践,只要进行第三步就能解决问题。
参考2、
err文件的日志内容:
090417 9:02:55 InnoDB: Error: unable to create temporary file; errno: 2
090417 9:02:55 [ERROR] Plugin 'InnoDB' init function returned error.
090417 9:02:55 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
090417 9:02:55 [ERROR] Unknown/unsupported table type: INNODB
090417 9:02:55 [ERROR] Aborting090417 9:02:55 [Warning] Forcing shutdown of 1 plugins
090417 9:02:55 [Note] MySQL: Shutdown complete
经过一翻Google,找出了无法启动的原因:MySQL在安装的时候不会自动初始tmpdir(临时文件目录),所以要在配置文件my.ini中添加如下内容:
[mysqld]
#自己指定的临时文件目录
tmpdir="D:/MySQL/MySQL Server 5.1/Temp"
再次启动MySQL一切正常,在Temp文件夹下生成了一些*.tmp的临时文件。
参考3、
以前手动安装MySQL5.0.16的windows service时很顺利,昨晚为5.0.83安装service时,总是提示1067的错误。网上有人说把my.ini放到C:WINDOWS下就可以了,但我遇到的情况是问题仍然没有解决。我的解决办法是将参数中的–defaults-file用–defaults-extra-file取代,如下:
mysqld –install MySQL –defaults-file=E:/mysql-5.0.83-win32/my.ini
改为
mysqld –install MySQL –defaults-extra-file=E:/mysql-5.0.83-win32/my.ini
执行mysqld –verbose –help能看到mysqld的用法,其中就有这两个参数的说明。
参考4、
根据我自己的实践,引起这个问题最大的可能性是数据表存储引擎(Engine,简而言之,存储引擎就是指表的类型,即Table Type
)引起的。MySQL数据库支持的数据表存储引擎有多种,可以用命令:show engines进行查看,在MySQL的配置文件my.ini中可以也看到(默认的是MyISAM):
# The default storage engine that will be used when create new tables when
default-storage-engine=MyISAM。
常用的存储引擎还有InnoDB,InnoDB有多种优点,InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全.同时,InnoDB也是MySQL上第一个提供外键约束的引擎,而且InnoDB存储引擎对事务处理的能力也是MySQL其他存储引擎所无法与之比拟的。
InnoDB与MyISAM的区别:
以InnoDB存储引擎存储的表,存储表结构的.frm与存储的表数据文件(ibdata1)是分开存放的,存储表数据的文件位置可以通过修改my.ini文件自行设置:
#*** INNODB Specific options ***
innodb_data_home_dir="D:/"
以MyISAM存储引擎存储的表,一共包括3个文件:.frm(存储表的结构)文件,.MYD(MYouData的缩写,存储表的数据)文件,.MYI(MYIndex的缩写,存储表的索引),这个三个文件同时存放在MySQL数据库安装时存放数据的目录下,如F:ProgramDataMySQLMySQL Server 5.1dataDatabasename中。
其他可能的原因(win 2003主机参考)
该现象属于微软9月10日发布的"TCP/IP"补丁带来的问题. 在"控制面板"的"添加或删除程序"中删除编号为KB967723的补丁即可.
或者通过修改注册表也可,具体可通过搜索引擎进一步了解。
通过查看错误日志分析
一般来说,虽然错误提示相同,但具体原因却可能多种多样。想要精确的找到问题所在,查看错误日志就很必要了。当遇到问题的时候,我们首先想到的应该是去查看错误日志,通过日志判断最可能的原因,然后再结合搜索引擎寻找对应的解决发难。
MySQL的错误日志(.err)位于C:ProgramDataMySQLMySQL Server 5.1data目录下,文件名一般为你的计算机名。
相关错误:
Host ’127.0.0.1′ is not allowed to connect to this MySQL server
如果mysql服务已经启动的话,可能是因为: MySQL数据库的配置文件my.ini中设置了参数: skip-name-resolve
从而导致使用“localhost”不能连接到数据库。
解决方法: 注释掉: #skip-name-resolve