MySQL数据库常见错误类型及解决方法

  • A+
所属分类:技术教程

      平常在使用美国主机的时候,尤其是Linux操作系统的主机,咱们基本都会和MySQL数据库打交道,毕竟网站的所有数据都放置在MySQL数据库里面。

      不过在网站建设的过程中,有时候使用MySQL数据库,或者访问网站可能会出现各种错误,而这些都是由于MySQL数据库设置不正确而导致 。今天小编就简单总结下MySQL数据库常见错误类型及解决方法,希望对大家有所帮助。

      Can't connect to MySQL server on localhost

      这个错误很容易理解,就是网站无法连接到MySQL数据库。

      解决方法:

      首先需要看看MySQL服务有没有正常启动,对于使用美国虚拟主机来说,我们基本没有权限来启动或关闭MySQL服务功能,因此这个时候需要联系主机商帮忙解决。

      如果MySQL数据库是正常启动的话,那么就需要在配置文件中查看本地连接localhost是不是指向127.0.0.1。另外,也需要看看数据库名以及数据库用户名的填写是否正确。

      Access denied for user: root@localhost

      用户root访问localhost被拒绝,这个错误一般是由于数据库用户名和密码相对MySQL服务器不正确

      解决方法:

      仔细检查网站所对应的./config.inc.php文件,并且找到$dbuser、$dbpw,核实用户名和密码后,重新设置保存即可。

      Access denied for user: 'user@localhost' to database 'XXX'

      这个错误是显示用户user没有对xxx数据库具有操作权限。

      这个错误和第一个问题是不同的,第一个是无法连接数据库,而这个错误是用户对数据进行操作时而导致,比如在进行选择、修改数据库时等操作。

      解决方法:

      如果使用的独立主机,那么需要更新mysql.user的相应用户记录,或者直接修改 ./config.inc.php,为其配置一个具有对数据库操作权限的用户。

      如果是虚拟主机的话,可以进入控制面板,然后找到对应的数据库,并且为该用户赋予对数据库操作的所有权限。

      You have an error in your SQL syntax

      这个错误一般是由于错误的SQL语法引起的,因为很多博客、论坛程序是没有对应的SQL语法的,所以这个错误的原因一般是安装插件或擅自修改程序导致的。

      不同的数据库版本数据库导出导入,比如MySQL4.2数据在导出的语句包含了MySQL4.1没有的功能,这时如果将这些SQL导入到MySQL4.1时就会产生错误。

      解决方法:

      仔细检查看具体是哪里导致的,然后更正好。另外,在数据库备份时要注意,如果不打算导入到其他版本的MySQL中则不用特殊考虑,否则要区别对待。

      Can’t not create Database.Database exists

      不能创建某个数据库,该数据库已经存在。由于一个MySQL下面的数据库名称必须保证唯一性,否则就会有这个错误。

      解决方法:

      把已经存在的数据库删除或改名,也可以把将要创建的数据库重新改名,让其名称不冲突就可以了。

      Too many connections

      此错误是表示已经达到最大连接数,连接数超过了MySQL设置的值,这个与max_connections和wait_timeout 都有关系。

      解决方法:

      如果是美国虚拟主机的话,需要联系主机商优化MySQL服务器的配置,或者尽可能减少网站的在线访问人数。

      如果是独立服务器的话,可以自行优化MySQL服务器的配置,具体方法如下:

      修改MySQL配置文件my.ini或者my.cnf 中的参数:

      max_connections= 2000

      wait_timeout = 20

      修改后重启MySQL数据库,如果经常性的报此错误,可以对服务器的整体性能做优化。

      Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

      出现这个错误一般是因为下面两个原因导致的:

      1、MySQL服务器没有开启。

      2、MySQL服务器开启了,但无法找到socket文件。

      解决方法:

      1、如果是美国虚拟主机的话,需要联系主机商确认数据库是否正常启动。

      2、如果是独立主机的话,请检查一下MySQL服务是否已经开启。如果已经开启,需要检查MySQL的socket路径,然后打开config.inc.php找到

      $dbhost = 'localhost'; 在hostname后面加冒号‘:’和 MySQL 的 socket 的路径。

      Got a packet bigger than 'max_allowed_packet' bytes

      这个因为调整了Mantis的上传附件的大小,但却没有调整MySQL的配置文件,从而引起的错误。

      解决方法:

      1、独立服务器可以按照以下方法调整:

      查找MySQL的配置文件(my.cnf 或者 my.ini)

      在[mysqld]部分添加一句(如果已有调整下值就可以):

      max_allowed_packet=20M

      重启MySQL服务就可以了,这里设置的是20MB。

      2、虚拟主机用户可以联系主机商调整此参数。

      以上简单总结MySQL数据库常见错误类型及相应的解决方法,在使用美国主机的时候可能经常遇到,大家可以参考以上解决方案进行解决。当然,MySQL数据库错误类型远远不止这些,不过都能找到相应的解决方法,所以出现问题也不必惊慌失措。

(本文由美国主机资讯原创,转载请注明!)

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar