我有一个旧的服务器备份,其中包含 /var/lib/mysql 中的 MySQL 数据文件,我需要访问该目录下某个数据库内的数据。不幸的是,不有数据库的任何 SQL 转储。只有这些文件。
备份文件来自版本 5.0.51a 的 MySQL 服务器,当前服务器的版本为 5.1.49。
我尝试了显而易见的方法,停止 MySQL 服务器,复制(同时保留权限)数据库目录从 my/backup/folder/databasename 到 /var/lib/mysql/databasename,然后重新启动 MySQL 服务器。这样就创建了数据库,但它们是空的。
我怎样才能提取数据?
(我在 Debian 系统上运行服务器)
答案1
如果你只是将数据文件复制到不同的版本,这可能会导致长期问题。通常强烈不鼓励这样做。正确的做法是将 5.0.51a 安装到某个地方,将数据文件复制到那里,然后执行倾倒并将它们导入到 5.1 中。
答案2
我发现解决方案是文件的所有权错误,因此:
sudo chown mysql:mysql -R /var/lib/mysql/databasename
一切都很好。