我有以下情况,但没有可能进行测试。感谢你的建议。
A)具有MySQL服务器的本地主机(旧的mysql 5.0)
A.1)这个MySQL服务器有几个数据库
A.2)其中一个数据库包含一些innoDB表,还包含一些“ndbcluster”(ENGINE = ndbcluster)表。
B)远程NDB集群,在A)中本地主机上使用了大量数据
我的目标是缩小本地主机上的DB(删除tabledata文件)。 为此,我将删除所有数据库,然后删除物理数据库文件。然后,将innodb_file_per_table添加到my.cnf并启动MySQL服务器。
问题:
1)AFAIK当我执行DROP DATABASE db_name时,它首先删除数据库中的所有表。如何确保在删除数据库时,远程NDB集群中的表/数据不受影响(由其他类似的本地服务器使用)?
2)当我将转储插回(它将重新创建已删除的数据库)到刷新的本地MySQL服务器时,它是否会自动添加/连接NDB集群中的ndbcluster表?
本地my.cnf有以下几行: NDBCLUSTER NDB-CONNECTSTRING = “NODEID = 35,1.2.64.69,1.2.64.70”
3)我是否真的需要删除所有数据库以删除物理文件并在每个表模式下在文件夹中重新创建数据库?
答案 0 :(得分:0)
DROP DATABASE将删除数据库中的所有表 InnoDB和NDB。所以你必须逐个表删除 如果你想保留NDB表。
不确定与InnoDB相关的答案。
答案 1 :(得分:0)
为了确保我没有触及NDB表,我跳过了删除虚拟数据库。所以,程序简要地看起来像这样:
移动/删除db文件:
cd / var / lib / mysql /&& rm -f ib_logfile0 ib_logfile1 tablespace1 tablespace2
重新初始化mysql并添加root用户(因为它无法正常启动):
cd / var / lib / mysql&& mysql_install_db的
当插入包含NDB表的数据库时,NDB表将自动连接。