MySQL数据库相关异常处理总结篇_MySql_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > MySql > MySQL数据库相关异常处理总结篇

MySQL数据库相关异常处理总结篇

 2013/8/10 3:23:55    程序员俱乐部  我要评论(0)
  • 摘要:我们知道,任何数据库在使用过程中,发生异常是不可避免的。本文我们对MySQL数据库使用过程中的一些相关异常处理进行了总结,接下来就让我们来一起了解这一部分内容吧。问题一:启动mysql时候出现StartingMySQL..Managerofpid-filequitwithoutupdatingf[失败]StartingMySQL...Managerofpid-filequitwithoutupdating[失败]解决方案:第一种:1.删除/usr/local/mysql/data/mysql
  • 标签:总结 数据库 数据 SQL MySQL数据库 MySQL 异常处理 异常

我们知道,任何数据库在使用过程中,发生异常是不可避免的。本文我们对MySQL数据库使用过程中的一些相关异常处理进行了总结,接下来就让我们来一起了解这一部分内容吧。

问题一:启动mysql时候出现Starting MySQL..Manager of pid-file quit without updating f[失败] Starting MySQL...Manager of pid-file quit without updating [失败]

解决方案:

第一种:

1.删除 /usr/local/mysql/data/mysql-bin.*  文件夹所有临时文件数字后缀名。

2.重启mysql(用二进制安装后,重启的方法)service mysqld start。

第二种:

编辑/etc/my.cnf 添加:

    class="dp-xml">
  1. [mysqld]  
  2.  
  3. datadir=/var/lib/mysql 

MySQL服务器把数据库存储在由datadir变量所定义的目录中。

查看已有进程之后杀掉:

  1. ps -aux|grep mysql  
  2.  
  3. 8016 pts/2 00:00:00 mysqld_safe  
  4.  
  5. 8037 pts/2 00:00:00 mysqld 

重启mysql。

第三种:

在/etc/my.cnf中注释

skip-federated =>#skip-federated

第四种:

有时候在/etc/my.cnf中设置了datadir=/var/lib/mysql重启mysql就会出现这种错误

若不单独设置,mysql默认数据目录为mysql安装目录下。

问题二:当让系统自己生成库时候,出现FATAL ERROR: Could not find ./bin/my_print_defaults。

解决方案:/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

问题三:mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)   /eccore/model/mysql.php 94或者Starting MySQL/etc/init.d/mysql: line 327: --socket=/var/lib/mysql/mysql.sock。

解决方案:   

1>  加入如下代码 ,让mysql去tmp文件夹应用这个文件,以前默认为/var/lib/mysql/mysql.sock 这个地址。

修改/etc/my.cnf

  1. [mysql]  
  2.  
  3. socket=/tmp/mysql.sock 

2> 进入/tmp文件夹创建mysql.sock

touch mysql.sock

3> 重启mysql

/etc/init.d/mysqld restart

问题四:A主机mysql访问B主机mysql:mysql -uroot -proot -P3306 -h192.168.100.52 出现如下错误:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.100.52' (113)

解决方案:

1. 服务器要能在网(公网)上被访问到,如果有防火墙,要开放3306端口(MySQL 默认的监听端口);

关闭所有防火墙/etc/rc.d/init.d/iptables stop

加入规则vim /etc/sysconfig/iptables

2. 在mysql服务器上建立一个远程用户,最简单的方式就是

grant ALL PRIVILEGES  on *.* to username@"%" identified by "root"

问题五:出现MySQL server has gone away有几种情况。

解决方案:

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。 

解决方案: 

在my.cnf文件中添加或者修改以下两个变量:

  1. wait_timeout=2880000 
  2.  
  3. interactive_timeout = 2880000 

关于两个变量的具体说明可以google或者看官方手册。

如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:

  1. sql = "set interactive_timeout=24*3600";  
  2.  
  3. mysql_real_query(...) 

2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。

解决方案:

在my.cnf文件中添加或者修改以下变量:

max_allowed_packet = 10M(也可以设置自己需要的大小)

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

关于MySQL数据库的一些相关异常处理的总结就介绍到这里了,希望本次的介绍能够对您有所收获。

发表评论
用户名: 匿名