导入/附加一些MySQL数据库

我有一个目录,如下所示:

ar_wiki_latest ibdata1 ib_logfile1 ko_wiki_latest ps_wiki_20100302 ru_wiki_latest zh_wiki_latest en_wiki_latest ib_logfile0 ja_wiki_latest mysql ps_wiki_latest test

从退役的服务器上遗留下来。 有没有办法说服MySQL采用这些数据库?

做到这一点的最可靠的方法是临时replace你想要导入的数据目录。 启动mysql服务器,并执行你想导入的表mysqldump (注意你将使用你的 mysqllogin)。 再次closuresMySQL,用当前的数据库replace临时的旧数据目录,重新启动MySQL,然后使用mysql命令行工具导入转储文件。

如果要导入的数据库使用MyISAM,那么通常只需将数据库的目录(例如“ en_wiki_latest ”)复制到新的mysql数据目录中,它就会“正常工作”。 但是,如果数据库使用InnoDB,那么使用这种方法会造成灾难。 所以,为了安全起见,我推荐上面提到的方法。

快速回顾一下如何导入/导出:

出口:

 mysqldump -uUSER -pPASSWORD database_name > database_name.sql 

import:

 mysql -uUSER -pPASSWORD <<< "create database database_name" mysql -uUSER -pPASSWORD database_name < database_name.sql 

我同意,除了一个补充。

切勿修改正在运行的系统/configuration以进行testing或开发。 始终在另一个系统或备用服务器或实例上进行testing和开发。 您可以在同一台机器上运行同一台服务器或许多版本的MySQL的许多实例。

在备用端口和备用数据目录上启动另一个MySQL实例。 现在,您可以在两个服务器或实例正在运行时转储和导入。

摘自手册: http : //dev.mysql.com/doc/refman/5.0/en/multiple-unix-servers.html

你不需要编译一个新的MySQL服务器,只需要启动一个不同的Unix套接字文件和TCP / IP端口号即可。 也可以使用相同的服务器二进制文件,并在运行时用不同的参数值来启动它的每个调用。 一种方法是使用命令行选项:

shell> mysqld_safe –socket = file_name –port = port_number

要启动第二个服务器,请提供不同的–socket和–port选项值,并将–datadir = path选项传递给mysqld_safe,以便服务器使用不同的数据目录。

对于Windows的相同的想法,请参阅手册的语法。

在对性能进行更改或修复“错误”时,请在运行/生产服务器上进行最终testing之前,对其他服务器/实例上的更改进行validation/testing。 这适用于configuration,索引,字段types,约束,程序等。