【问题标题】:2 MySQL installations (now one lost)2 个 MySQL 安装(现在丢失了一个)
【发布时间】:2015-07-18 19:00:41
【问题描述】:

好的,我有一个问题。 MySQL 已经安装在我的机器(mac)上,但我无法通过终端登录(对我来说是相当新的机器)。我已经通过 SequelPro 使用了几个数据库,并决定通过终端登录来完成几个工作。

我不知道为什么不。我运行了 brew install mysql,令我惊讶的是它安装了 mysql。通过终端登录时,我被带到了这个没有我的数据库的 MySQL 实例。现在,我重新启动 SequelPro,它现在登录到新实例而不是包含我数据的实例。

知道在哪里可以找到我的数据库并让它们使用这个新实例吗?或者对如何清理一般情况有任何想法?

---更新---

数据库是 InnoDB

/usr/local/bin/mysql
/usr/local/Cellar/mysql
/usr/local/Cellar/mysql/5.6.25/bin/mysql
/usr/local/Cellar/mysql/5.6.25/include/mysql
/usr/local/Cellar/mysql/5.6.25/include/mysql/mysql
/usr/local/Cellar/mysql/5.6.25/share/doc/mysql
/usr/local/Cellar/mysql/5.6.25/share/mysql
/usr/local/include/mysql
/usr/local/Library/LinkedKegs/mysql
/usr/local/opt/mysql
/usr/local/share/doc/mysql
/usr/local/share/mysql
/usr/local/var/mysql
/usr/local/var/mysql/mysql

/usr/local/var/mysql 是我的第一个实例的数据库所在的位置。 /Cellar 是 homebrew 安装 MySQL 的地方。我在 cmets 中获得了添加符号链接的建议……不确定在这种情况下我应该将哪个文件夹用作源或目标。

另外,我也不确定如何从旧位置启动数据库。

非常感谢任何帮助!

【问题讨论】:

  • 您的 my.cnf 文件似乎已被覆盖,从而丢失了您的数据库位置。旧数据库可能(或实际上应该)仍然存在。要找到它:以 root 用户身份打开命令提示符,转到 /,在磁盘上搜索所有出现的 mysql:ls -alR|grep mysql(或类似的)。这应该会为您提供数据库可能驻留的所有位置。
  • 谢谢。我找到了数据库。关于将它们导入新实例的最佳方法有什么想法吗?
  • 如果它是一个 ISAM 数据库,您可以使用创建数据库然后将文件复制到 mysql 创建的目录中。如果是 InnoDB,您将真正使用旧位置启动数据库,或者使用符号链接:将新位置移动到新目录(重命名目录),并创建符号链接 ln -s source target
  • 我添加了一个更新以确保一切都清楚,我们可以关闭这个问题。感谢您的帮助!

标签: mysql macos


【解决方案1】:

让旧数据库运行的短脚本:

GO to the working database data location
Go up one directory
Shutdown any mysqld.
mv database_directory database_directory.backup
Symlink the data directory of any other mysql:
ln -s old_data_directory database_directory

【讨论】:

  • 好的,现在的目标是识别:database_directory:您的列表中的哪个包含数据库。 old_data_directory:旧数据库的路径是什么。一旦你替换了这些值,启动 mysql,你可以导出你的数据库,再一次替换符号链接后,将它导入新的(或继续使用旧的)。
猜你喜欢
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多