我从服务器上运行的 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/