我有以下情况,但不可能做测试。谢谢你的建议。
a) mysql服务器的本地主机(旧的MySQL5.0)
a、 1)这个mysql服务器有几个数据库
a、 2)其中一个数据库包含一些innodb表,但也包含一些“ndbcluster”(engine=ndbcluster)表。
b) 在本地主机上使用大量数据的远程ndb群集
我的目标是缩小本地主机上的db(删除tabledata文件)。为此,我将不得不删除所有数据库,然后删除物理数据库文件。然后,将innodb_file_per_table添加到my.cnf并启动mysql server。
问题是:
1) 当我执行drop database db\u name时,它首先删除数据库中的所有表。如何确保在删除数据库时,远程ndb集群中的表/数据不受影响(其他类似的本地服务器使用它)?
2) 当我将转储文件(它将重新创建删除的数据库)插入到刷新的本地mysql服务器时,它会自动从ndb集群添加/连接ndbcluster表吗?
local my.cnf有以下行:ndbcluster ndb connectstring=“nodeid=35,1.2.64.69,1.2.64.70”
3) 我真的需要删除所有的数据库来删除物理文件并在每个表的文件夹模式下重新创建数据库吗?
2条答案
按热度按时间p4rjhz4m1#
drop database将删除数据库中的所有表,包括innodb和ndb。因此,如果要保留ndb表,就必须逐个删除表。
不确定有关innodb的答案。
mrphzbgm2#
为了确保我没有接触ndb表,我跳过了删除虚拟数据库。所以,这个过程大致如下:
转储mysql数据库和其他重要的数据库
停止mysql服务
移动/删除db文件:
cd/var/lib/mysql/&&rm-f ib\u logfile0 ib\u logfile1表空间1表空间2
重新初始化mysql并添加根用户(因为它不会正常启动):
cd/var/lib/mysql&&mysql\u安装\u db
启动mysql服务器
使用默认根用户插入mysql db(从dump)而不使用密码。
使用旧(还原)用户插入其他数据库。
插入包含ndb表的数据库时,ndb表将自动连接。