保存没有mysqldump的MySQL数据库

我需要备份一些数据库,并将它们迁移到新的服务器上。

我会使用mysqldump,但问题是,我有问题启动mysqld / mysql(我正在迁移的部分原因)。 我一直在得到

# /etc/init.d/mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED] 

基本上,我在一个媒体寺庙DV服务器,我用百胜尝试和升级的东西,并搞砸了一堆configuration,因为mediatemple没有使用百胜最初安装MySQL,PHP等…

不pipe怎样,幸好看起来我的旧表还在(我可以在/var/lib/mysql看到)

我的问题是 :是否有可能以某种方式将我的/var/lib/mysql的文件迁移到我的新服务器? 我想我可能只是“复制并粘贴”到我的新服务器的/var/lib/mysql目录中…理论上是否工作?

还是我有其他的select来移动表格?

我在CentOS上。

如果你有每个表使用MyISAM存储引擎,那么复制/ var / lib / mysql就好了。

如果InnoDB甚至有一个tabe,那么你必须确保你复制下面的内容:

  • 在/ var / lib中/ MySQL的
  • ibdata,ib_logfile0,ib_logfile1(如果它们不在/ var / lib / mysql中)
  • /etc/my.cnf(因为InnoDB的设置)

请确保在另一台计算机上恢复/ var / lib / mysql时,在该新服务器上拥有相同的主要版本的MySQL是最安全的。

如果从5.1升级到5.5,那么复制/ var / lib / mysql对于授权表不存在问题,因为/var/lib/mysql/mysql/user.frm具有不同的列布局版本。

  • MySQL 5.0有37列
  • MySQL 5.1有39列
  • MySQL 5.5有42列

复制/ var / lib / mysql的内容并不是一个漂亮的解决scheme,但是如果两个MySQL版本都是二进制兼容的,它就可以工作。

这意味着实际上,MySQL 3文件不能用于MySQL 5.5服务器。 但通常当源是MySQL 5.x,目标也是5.x时,它应该可以工作。

不过,我不知道当源是32位还是目标64位时可能会出现问题。