我们有一个用 PHP 编写的系统,这些年来它已经变得相当大了。数据库是 MySQL(InnoDB 表),目前有超过 12GB 的数据,有数百个表,其中许多有超过 1200 万条记录!
问题是,很多表/列(但不是全部)都在 latin1 中,我们(显然)在存储外来字符时遇到了问题。
什么是我们将所有表格/文本列转换为 UTF8 且停机时间最短的最佳方式?
该系统有数百人 24/7 全天候使用,因此长时间停机确实不是一种选择。
有没有什么方法可以在没有大量停机时间的情况下成功地做到这一点,有什么明显的事情我们需要注意吗?
我知道我们需要设置以下内容以使我们的应用程序使用 utf-8:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
ini_set('default_charset', 'utf-8');
SET NAMES utf8
- 上传文件之前在我们的 IDE 中编码为 UTF8 的文件
我已经阅读了其他各种帖子,但每个人似乎都在建议不同的方法,有些人说它需要一个完整的数据库转储/恢复......这意味着数小时的停机时间。
那么最好的方法是什么?