更改 MySQL innodb_file_format 和 large_prefix 是否会对其他网站造成任何问题?
Will changing MySQL innodb_file_format and large_prefix cause any issues for other websites?
解释:
正在尝试安装 Moodle,安装过程提示我需要在 MySQL 配置中进行以下更改(以获得完整的 unicode 支持):
SET GLOBAL innodb_file_format = barracuda
SET GLOBAL innodb_large_prefix = 'on'
SET GLOBAL innodb_file_per_table = 1
这是与 cPanel 共享的主机,所有其他要求都是 set/installed。
问题:
此服务器上有许多其他网站使用 MySQL 和旧设置,我的问题是我是否 运行 上面的命令并更改 innodb_file_format to "Barracuda"
(目前是 Antelope) innodb_large_prefix to "on"
这是否会导致其他网站任何可能的问题?
如果是,我该如何避免它们?我可以仅为单个数据库设置此设置吗?
在您重新创建表之前,这些更改不会生效。只有新表才会接受更改。不过,您不必显式删除表。 IIRC a ALTER TABLE foo FORCE;
也可以完成这项工作。不过,这可能需要一段时间。如果你不想停机,你可以使用 pt-online-schema-change
例如(来自 percona-tools)。
无论是从数据库表读取还是向数据库表写入,都不会关心这些更改。
不可以,您不能仅为单个数据库设置这些设置。它适用于您服务器上的所有数据库。
解释:
正在尝试安装 Moodle,安装过程提示我需要在 MySQL 配置中进行以下更改(以获得完整的 unicode 支持):
SET GLOBAL innodb_file_format = barracuda
SET GLOBAL innodb_large_prefix = 'on'
SET GLOBAL innodb_file_per_table = 1
这是与 cPanel 共享的主机,所有其他要求都是 set/installed。
问题:
此服务器上有许多其他网站使用 MySQL 和旧设置,我的问题是我是否 运行 上面的命令并更改 innodb_file_format to "Barracuda"
(目前是 Antelope) innodb_large_prefix to "on"
这是否会导致其他网站任何可能的问题?
如果是,我该如何避免它们?我可以仅为单个数据库设置此设置吗?
在您重新创建表之前,这些更改不会生效。只有新表才会接受更改。不过,您不必显式删除表。 IIRC a ALTER TABLE foo FORCE;
也可以完成这项工作。不过,这可能需要一段时间。如果你不想停机,你可以使用 pt-online-schema-change
例如(来自 percona-tools)。
无论是从数据库表读取还是向数据库表写入,都不会关心这些更改。
不可以,您不能仅为单个数据库设置这些设置。它适用于您服务器上的所有数据库。