mysql table engine_Mysql报错 :Unknown table engine 'InnoDB'

问题:

zabbix服务器重启后,进入zabbix的web发现登录不进去并且网页报mysql的错误,查看mysql的日之后,发现报错:

[root@czy ~]# tail -f /var/log/mysqld.log

140820 16:24:43 [Note] /usr/libexec/mysqld: ready for connections.

Version: '5.1.73'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

140917 15:03:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

/usr/libexec/mysqld: Can't create/write to file '/tmp/ibEdFc8d' (Errcode: 13)

140917 15:03:03  InnoDB: Error: unable to create temporary file; errno: 13

140917 15:03:03 [ERROR] Plugin 'InnoDB' init function returned error.

140917 15:03:03 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

再查看zabbix的日志之后,也发现报错

[root@czy zabbix]#tail -f /tmp/zabbix_server.log

3545:20140917:154534.090 [Z3005] query failed: [1286] Unknown table engine 'InnoDB' [select distinct r.druleid,r.iprange,r.name,c.dcheckid from drules r left join dchecks c on c.druleid=r.druleid and uniq=1 where r.proxy_hostid is null and r.status=0 and (r.nextcheck<=1410939934 or r.nextcheck>1410939934+r.delay) and mod(r.druleid,1)=0 and r.druleid between 0 and 99999999999999]

3545:20140917:154534.090 [Z3005] query failed: [1286] Unknown table engine 'InnoDB' [select count(*),min(nextcheck) from drules where proxy_hostid is null and status=0 and mod(druleid,1)=0 and druleid between 0 and 99999999999999]

后百度查询“Unknown table engine 'InnoDB'”的解决办法,一堆文章说需要修改mysql内部设置调整等,心想不会出现mysql内部设置问题,因为就重启了机器发生的问题。后仔细检查mysql报错,看到关键信息“/usr/libexec/mysqld: Can't create/write to file '/tmp/ibEdFc8d' ”  ,此时查看/tmp的权限,果然是错误的权限,因为机器重启后,/tmp的权限会重置。

解决办法: chmod 777 /tmp

就这样,很简单!  因为Mysql在启动的时候会在/tmp下创建临时文件和 socket 文件,所以/tmp权限不正确了就会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一个错误提示说明你运行的 SQL 脚本文件中使用了 InnoDB 存储引擎,但是该引擎可能没有被安装或者被禁用了。你可以通过执行`SHOW ENGINES;`语句来查看当前 MySQL 数据库支持的存储引擎列表,如果 InnoDB 不在列表中,那么你需要启用 InnoDB 引擎。你可以在 MySQL 配置文件中添加或修改以下配置: ``` [mysqld] default-storage-engine=InnoDB innodb_file_per_table=1 innodb_buffer_pool_size=XXG # 根据你的实际情况设置合适的内存大小 ``` 其中,`default-storage-engine`配置项用于指定默认的存储引擎为 InnoDB,`innodb_file_per_table`配置项用于指定每个 InnoDB 表使用独立的表空间,`innodb_buffer_pool_size`配置项用于指定 InnoDB 缓冲池的大小。 第二个错误提示说明你的 SQL 脚本文件中涉及到了一个名为 xuesheng 的表,但是该表可能不存在。你可以通过执行`SHOW TABLES;`语句来查看当前数据库中存在的表,如果 xuesheng 不在列表中,那么你需要创建该表。你可以执行以下 SQL 语句来创建 xuesheng 表: ``` CREATE TABLE xuesheng ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age TINYINT UNSIGNED NOT NULL, sex ENUM('男', '女') NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` 其中,`id`字段为自增字段,`name`字段为字符串类型,`age`字段为无符号的小整数类型,`sex`字段为枚举类型。注意,这里的存储引擎也是 InnoDB

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值