设计网站欣赏,网页设计的实训报告,烟台网站制作公司哪家好,微信登录网页版登录入口概述
上周发生了一个Mysql报错的问题#xff0c;今天有时间整理一下产生的原因和来龙去脉#xff0c;Mysql的版本是5.5,发生错误的表存储引擎都是MyISAM,产生的报错信息是Table xxxxxx is marked as crashed and should be repaired。
定位问题
产生的后果是Nginx服务没有…概述
上周发生了一个Mysql报错的问题今天有时间整理一下产生的原因和来龙去脉Mysql的版本是5.5,发生错误的表存储引擎都是MyISAM,产生的报错信息是Table xxxxxx is marked as crashed and should be repaired。
定位问题
产生的后果是Nginx服务没有响应找到Mysql的进程想做的是查找到mysql的错误日志路径查看错误信息错误信息里的关键词是定位问题、解决错误的有效手段。
在多说一句Linux服务器中的进程管理使用 ps aux里面主要留意的信息是PID、进程所属用户和后面启动进程所执行的Bash命令。
ps aux | grep mysqlmysql 17743 4.7 33.1 3722028 2604540 ? Sl 3月01 338:55
/usr/local/mysql/libexec/mysqld
--defaults-file/usr/local/mysql/etc/my.cnf
--basedir/usr/local/mysql
--datadir/usr/local/mysql/data
--plugin-dir/usr/local/mysql/lib/mysql/plugin
--usermysql
--log-error/usr/local/mysql/var/mysql_error.log
--open-files-limit10240
--pid-file/usr/local/mysql/var/mysql.pid
--socket/tmp/mysql.sock
--port3306配置文件路径: --defaults-file /usr/local/mysql/etc/my.cnfMysql文件路径: --basedir /usr/local/mysqlMysql数据报错路径: --datadir /usr/local/mysql/dataMysql错误日志 --log-error /usr/local/mysql/var/mysql_error.log
使用 tail -f -n 20 /usr/local/mysql/var/mysql_error.log 观测错误信息,如果想让log的行数展示的多些可以指定最后行数例如想展示20行tail -f -n 20 /usr/local/mysql/var/mysql_error.log,报错消息如下图 成因
网上查了一下错误的产生原因有网友说是频繁查询和更新表造成的索引错误还有说法是Mysql数据库因某种原因而受到了损坏,如数据库服务器突发性断电在数据表提供服务时对表的源文件进行某种操作都有可能导致Mysql数据表被损坏而无法读取数据总之就是因为某些不可测的问题造成表的损坏。
我个人估计是没有正确编写和使用代码导致的出现问题的表都是MyISAM存储引擎。
解决办法
命令行方式
1、登录切换到error的数据库上
mysql -u root -puse cc;2、检查出现问题的表的状态
check table cc_user_area;3、修复表table_name 需要修复的表名
repair table table_name4.检查一下状态,如下图
check table cc_user_address;Navcat
还有一种更为便捷的方法使用Navicat来处理首先连接上数据库选择表右键-Maintain维护-Repair Tables修复表-Extended扩展 修复就完成了服务也正常使用了有时候需要规范的编码才不会出现奇奇怪怪的问题。