【发布时间】:2012-08-07 12:58:43
【问题描述】:
为了优化系统性能,我们在 RAM 上存储了一些静态表(它们的副本也确实存在于硬盘驱动器上 -- 在 MyISAM 上)。现在,众所周知,当服务器重新启动时,RAM 上的所有数据都会被删除。因此,为了避免我们创建了一个包含 4 个 SQL 语句的 init 文件。
请注意,每个 SQL 语句都位于单独的行中,以分号 (;) 结尾,并且任何地方都没有 cmets --- 所以根据我有限的知识,我相信我已经避免了一些基本错误。但是,当我从命令行手动重新启动 MySQL 进行测试时,我看到内存表是空的。初始化文件本身没有问题,因为当我从命令行手动执行初始化文件时,数据被填充而没有任何问题。
在解决此问题方面的任何帮助将不胜感激!
谢谢!
乌达扬
【问题讨论】:
-
你的init文件的内容是什么?它位于哪里?而且,您用来启动服务器的命令行是什么?
-
大概你在初始化脚本中没有错误记录。您没有提供有关如何调用此脚本或运行此脚本的操作系统的详细信息 - 因此无法提供任何答案。
-
@JayDM -- 有 4 条语句: INSERT INTO _active_properties_memory SELECT * FROM _active_properties;插入 _airports_memory 选择 * FROM _airports;插入 _countries_memory 选择 * FROM _countries;插入到 _points_of_interest_memory 选择 * FROM _points_of_interest;该文件位于根用户的 tmp 文件夹中 -- 当我执行 show global variables SQL 语句时,文件路径正确显示
-
@symcbean --- 这是在 Linux 操作系统上运行的 -- 我的理解是每次服务器重新启动时都会执行 init,而无需调用任何东西。
-
init 以非常明确的顺序运行很多东西 - 有很多方法可以连接到它。您还没有解释它是如何/何时运行的。