怎么处理MySQL数据库相关异常,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
大家都明白,任何数据库在使用过程中,发生异常是不可避免的。下面小编来讲解下MySQL数据库相关异常怎么处理?
问题一:启动mysql时候出现StartingMySQL..Managerofpid-filequitwithoutupdatingf[失败]StartingMySQL...Managerofpid-filequitwithoutupdating[失败]
解决方案:
第一种:
1.删除/usr/local/mysql/data/mysql-bin.*文件夹所有临时文件数字后缀名。
2.重启mysql(用二进制安装后,重启的方法)servicemysqldstart。
第二种:
编辑/etc/my.cnf添加:
[mysqld]datadir=/var/lib/mysql
MySQL服务器把数据库存储在由datadir变量所定义的目录中。
查看已有进程之后杀掉:
ps-aux|grepmysql8016pts/200:00:00mysqld_safe8037pts/200:00:00mysqld
重启mysql。
第三种:
在/etc/my.cnf中注释掉
skip-federated=>#skip-federated
第四种:
有时候在/etc/my.cnf中设置了datadir=/var/lib/mysql重启mysql就会出现这种错误。
若不单独设置,mysql默认数据目录为mysql安装目录下。
问题二:当让系统自己生成库时候,出现FATALERROR:Couldnotfind./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'tconnecttolocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(13)/eccore/model/mysql.php94或者StartingMySQL/etc/init.d/mysql:line327:--socket=/var/lib/mysql/mysql.sock。
解决方案:
1>加入如下代码,让mysql去tmp文件夹应用这个文件,以前默认为/var/lib/mysql/mysql.sock这个地址。
修改/etc/my.cnf
[mysql]socket=/tmp/mysql.sock
2>进入/tmp文件夹创建mysql.sock
touchmysql.sock
3>重启mysql
/etc/init.d/mysqldrestart
MySQL数据库相关异常怎么处理
问题四:A主机mysql访问B主机mysql:mysql-uroot-proot-P3306-h292.168.100.52出现如下错误:ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.100.52'(113)
解决方案:
1.服务器要能在网(公网)上被访问到,如果有防火墙,要开放3306端口(MySQL默认的监听端口);
关闭所有防火墙/etc/rc.d/init.d/iptablesstop
加入规则vim/etc/sysconfig/iptables
2.在mysql服务器上建立一个远程用户,最简单的方式就是
grantALLPRIVILEGESon*.*tousername@"%"identifiedby"root"
问题五:出现MySQLserverhasgoneaway有几种情况。
解决方案:
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000interactive_timeout=2880000
关于两个变量的具体说明可以google或者看官方手册。
如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql="setinteractive_timeout=24*3600";mysql_real_query(...)
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet=10M(也可以设置自己需要的大小)
max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度。
看完上述内容,你们掌握怎么处理MySQL数据库相关异常的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。