![Mysql无法启动-未找到innodb](https://linux22.com/image/961611/Mysql%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8-%E6%9C%AA%E6%89%BE%E5%88%B0innodb.png)
我全新安装了 ubuntu 12.04 服务器版本,但 mysql 服务器无法正常启动。
我做了一个简单的 apt-get 安装
apt-get install mysql-server
但是,它失败并显示此错误消息
root@test:~# mysqld
120618 20:57:32 [警告] 语法“--log-slow-queries”已弃用,并将在将来的版本中删除。请改用“--slow-query-log”/“--slow-query-log-file”。
120618 20:57:32 [注意] 插件‘FEDERATED’已被禁用。
120618 20:57:32 InnoDB:InnoDB 内存堆已禁用
120618 20:57:32 InnoDB:互斥锁和 rw_locks 使用 GCC 原子内置函数
120618 20:57:32 InnoDB:压缩表使用 zlib 1.2.3.4
120618 20:57:32 InnoDB:无法识别 innodb_flush_method 的值 fdatasync
120618 20:57:32 [错误] 插件“InnoDB”初始化函数返回错误。
120618 20:57:32 [错误] 插件“InnoDB”注册为存储引擎失败。
120618 20:57:32 [错误] 未知/不受支持的存储引擎:InnoDB
120618 20:57:32 [错误] 正在中止
我可以使用“--skip-innodb --default-storage-engine=myisam”标志启动服务器,但想使用 innodb。
有人知道这里的问题是什么吗?
答案1
这是配置文件问题。我们正在创建 chef 脚本来进行部署,并使用了 OpCode 的 mysql 包,该包做了一些非常奇怪的事情,弄乱了机器上的 Mysql,这是我们没有预料到的,它将一些配置值设置为不起作用的东西。
如果使用 chef,我建议使用 apt-get 提供的软件包
package "mysql-server" do
action :install
end
package "mysql-client" do
action :install
end
然后通过OpCode提供的代码更改密码,或者在服务器安装后更改密码。
这是在 Rackspace 上使用 Ubuntu 12.04 Server 进行的。
答案2
默认情况下,MySQL 应该在您安装时自动启动,然后在重新启动后重新启动;如果没有,那么您一定存在一些配置问题。
您发出的命令mysqld
不是在 Ubuntu 中启动 MySQL 的通常方式,并且可能与正常设置冲突:启动/停止/重新启动的推荐方式是使用命令service
--例如mysql service restart
--并且运行脚本也很常见/etc/init.d/mysql
,您可能会在较旧的教程中看到它。