最近我的服务器出了问题。它要求我们安装一个新的硬盘驱动器,cpanel,并将旧的硬盘驱动器设置为从机。如何将mysql数据库从从驱动器迁移到主驱动器?从服务器包含带有MYD、MYI和frm文件的表。数据库大概是20克左右。
我认为SSH是最好的方法。我不太熟悉SSH命令,也不知道如何做到这一点。我已经使用相同的名称、用户和密码设置了新数据库(在主驱动器上的新安装上)。
系统: Linux,Centos 6.4
发布于 2013-07-09 02:55:08
我之所以感到奇怪,是因为您提到了SSH,这意味着从数据库服务器连接到另一台计算机(免费提示:使用"SSH“连接到机器,但之后键入的内容是"shell命令”,而不是"SSH命令“。我刚才在谷歌上搜索了这个短语,对它们被不恰当地称为"SSH命令“的频率感到震惊)。在Sqlbot的世界里,“奴隶”是一台不同的机器--复制奴隶--它最初也是令人困惑的。
您提到了MYD和MYI文件,但没有提到IBD文件,所以要么使用MyISAM而不是InnoDB,要么使用混合,但从未设置innodb_file_per_table = 1。
您的恢复路径取决于您是否使用InnoDB。
如果您不使用InnoDB,那么您可以--信不信由你--只需复制旧的数据库目录和文件,并在需要时修复权限。MySQL非常原谅MyISAM表中的这种情况。
连接到您的MySQL服务器并找到数据目录。来自我的一台旧CentOS机器(对您来说可能还是一样):
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)在旧硬盘上找到可比较的目录,并将所有目录--但不是文件,而不是"mysql“目录--复制到datadir中(可能是/var/lib/mysql)。
然后,如果这些文件不是"mysql“用户拥有的,
root@host# chown -R mysql:mysql /var/lib/mysql那就看看它是否有效。
mysql> SHOW DATABASES;如果您只使用MyISAM,则您的数据库和表应该位于新服务器上,尽管您需要对所有表执行CHECK TABLES操作,或者使用这个mysqlcheck实用程序验证它们是否完整,并根据需要进行修复。
如果您使用的是InnoDB,那么步骤将是不同的,所以看看这是否适合您。
https://dba.stackexchange.com/questions/45863
复制相似问题