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

数据库 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 添加:

 

  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数据库的一些相关异常处理的总结就介绍到这里了,希望本次的介绍能够对您有所收获。

【编辑推荐】

  1. MySQL数据库如何恰到好处地使用索引?
  2. PHP的MySQL库之Pdo-Mysql与Mysqli性能对比
  3. 一个mysql数据库配置问题导致登录失败的解决方案
  4. MySQL数据库打开文件太多导致mysqldump出错的解决
  5. MySQL数据库.frm文件、.MYD文件和.MYI文件的修复方法
责任编辑:赵鹏 来源: 火魔网
相关推荐

2011-04-07 15:47:28

MySQL数据库

2010-05-31 15:12:44

MySQL数据库

2011-07-12 16:41:14

mysql处理异常

2011-05-26 14:43:49

ORACLE数据库异常处理

2014-11-05 10:37:44

Windows Pho数据库

2016-12-29 12:24:33

MySQL数据库移植

2019-01-02 11:10:40

MySQL数据库数据库设计

2011-01-21 11:12:01

Spring

2021-06-05 21:29:53

数据库MySQL函数

2022-03-29 10:52:08

MySQL数据库

2019-07-11 08:45:00

MySQL数据库缓存

2011-07-26 17:19:32

SQL Server数随机抽取数据

2009-08-05 18:39:54

C#异常类

2011-03-17 14:09:25

Oracle数据库字符

2010-05-31 15:23:02

MySQL数据库NUL

2011-08-18 19:10:27

DB2数据库命令

2011-07-29 15:31:52

Oracle数据库ORDER BY

2009-12-25 15:58:37

WPF数据处理

2011-08-03 18:18:37

MySQL数据库目录结构

2011-07-05 10:03:00

Qt MYSQL 数据库
点赞
收藏

51CTO技术栈公众号