Webhost 不支持 InnoDB。现在怎么办?

发布于 2024-08-21 22:28:47 字数 377 浏览 11 评论 0原文

我正在我的笔记本电脑上开发一个小型 WAMP Web 应用程序,其中运行着一个 mySQL 实例,并且我选择 InnoDB 作为我的数据库引擎。经过几周的开发,我想让它向公众开放,却发现我的虚拟主机提供的数据库服务器不支持 InnoDB,只支持 MyISAM。

从我的笔记本电脑上的 innoDB 模式生成的创建和填充脚本,当针对实时数据库执行时,可以设法创建单独的表,但随后在创建视图时遇到问题。 MyISAM 不支持视图吗?我知道外键不是。这就是我选择 InnoDB 的原因...让我的 innoDB 模式设计与 myISAM 一起工作的机会有多大?

是否有任何直接的方法可以将整个模式从一个存储引擎转换为另一种存储引擎?我应该寻找另一个提供支持 innoDB 的 mysql 数据库的 Web 主机吗?

I was developing a small WAMP web application on my laptop, where I have an instance of mySQL running and I chose InnoDB for my DB engine. After several weeks' development I wanted to make it available to the public and found out the database server provided by my web host does not support InnoDB, only MyISAM.

The create-and-populate script generated from the innoDB schema on my laptop, when executed against the live database, can manage to create individual TABLES but then runs into problems creating the VIEWs. Are views not supported in MyISAM? I know FOREIGN KEYs are not. That's very much why I made the choice of InnoDB... What are my chances of making my innoDB schema design work with myISAM?

Is there any straightforward way of converting the whole schema from one storage engine to the other? Should I look for another web host that does provide a mysql db that supports innoDB?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

信愁 2024-08-28 22:28:47

您的选择:

  1. 询问您的网络托管提供商是否可以在其服务器上启用 InnoDB(有时他们会为您执行此操作或将您的帐户移至支持 InnoDB 的服务器)。
  2. 获取具有 InnoDB 支持的新网络托管提供商。
  3. 处理 PHP 中的外键依赖关系(例如,您可以使用 Zend_Db 和 Zend_Db_Table 来处理数据库,如果正确设置,这些类可以自动处理外键依赖关系)。
  4. 将您的应用程序转换为 MyISAM 表。

就我个人而言,我认为第 4 种解决方案是最糟糕的。如今有许多网络托管提供商支持 InnoDB,因此重新编码大部分应用程序以使用 MyISAM 会浪费您的时间。当然,这取决于应用程序的规模和复杂程度。如果它相对较小,这可能不是一个坏主意。

我可能会寻找新的网络托管提供商。

Your options:

  1. Ask your web hosting provider if they can enable InnoDB on their servers (sometimes they will do it for you or move your account to a server that supports InnoDB).
  2. Get a new web hosting provider with InnoDB support.
  3. Take care of foreign key dependencies in PHP (for example you could use Zend_Db and Zend_Db_Table to work with the database, these classes can automatically take care of foreign key dependencies if you set them up correctly).
  4. Convert your application to MyISAM tables.

Personally, I think number 4 is the worst solution. There are many web hosting providers that support InnoDB these days so it would be waste of your time to recode much of your application to work with MyISAM. This, of course, depends on how large and complex the application is. If it's relatively small, it might not be as bad idea.

I would probably look for a new web hosting provider.

甜`诱少女 2024-08-28 22:28:47

是的,但是 InnoDB 还有许多其他功能,例如事务和行锁定(而不是表锁定)。

Yes, but InnoDB has a number of other features like transactions and row-locking (rather than table locking).

九局 2024-08-28 22:28:47

这与 InnoDB 与 MyISAM 无关:两种表类型都支持视图。我认为这要么是版本问题(Views [. ..] 在 MySQL Server 5.0 中可用)或关于 授权表

如果您发布收到的确切错误消息,将会有所帮助。

it is not about InnoDB vs. MyISAM: Views are supported on both table types. i would think it is either a version issue (Views [...] are available in MySQL Server 5.0) or about the grant tables.

it would help if you would post the exact error messages you are getting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文