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

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

创新互联公司主要从事网站设计制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务新晃,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

问题一:启动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() [function.mysql-connect]: 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文件的修复方法

网页题目:MySQL数据库相关异常处理总结篇
浏览路径:http://www.mswzjz.cn/qtweb/news6/5106.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能