mysql - 将 MySQL 数据库连接到复制和粘贴的数据目录

标签 mysql linux database

我从服务器上运行的 MySQL 实例的数据目录 (/var/lib/mysql/) 复制了一个数据库目录到我的本地机器。是否可以将此数据库目录放入我本地的 MySQL datadir 并访问该数据库?

到目前为止我所做的就是像上面那样复制数据库目录,我登录到 MySQL 可以看到数据库,我切换到它可以列出所有表。但是每当我尝试查询一个表时,我都会得到类似的东西:

select * from users limit 1;
ERROR 1146 (42S02): Table 'users' doesn't exist

同样来自 mysqldump:

mysqldump: Got error: 1146: Table 'very_first_table' doesn't exist when using LOCK TABLES

有没有可能做我在这里想做的事情?

最佳答案

所以我让它开始工作,请记住我的最终目标是从数据库中获取数据库转储。 mysql 文件夹是从目前无法运行的旧虚拟机快照中提取的,所以我不能只登录到它并进行正常转储。这是我所做的:

1) 我在本地机器上的新虚拟机上安装了 mysql

2) 我用service mysql stop关闭了mysql

3) 我从全新安装中删除了现有的/var/lib/mysql 文件夹

4) 我将它替换为从旧快照中删除的/var/lib/mysql 文件夹

5) 我运行了 chown -R mysql:mysql/var/lib/mysql

6) 我用service mysql start重启了mysql

7) 然后我检查我是否可以登录并查询表,我可以!

所以在那之后我能够运行转储。

关于mysql - 将 MySQL 数据库连接到复制和粘贴的数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391036/

相关文章:

mysql - C API : Using Variables In mysql query

linux - 如果死了就开始进程

sql - 哪个数据库设计更好?

linux - merge Hook 后无法自动 check out 远程 git repo

database - 如何从 Web 更新 Access 数据库?

mysql - SQL,如何从 mysql 中选择一个包含 "/"的列

mysql - 另一列中下一个最接近的日期时间

php - 4 个表之间的关系 Laravel 5.1

MySQL存储过程where子句不过滤记录

linux - 删除所有具有相似模式且日期小于特定日期的文件