【问题标题】:Cannot run MySQL after unzipping from a tar archive从 tar 存档解压缩后无法运行 MySQL
【发布时间】:2015-08-23 22:54:56
【问题描述】:

下载mysql tar文件存档后,解压到一个目录下(无需安装)。

现在当我从命令行运行时:

/somedir/mysql-5x/bin/mysqld

我看到以下错误:

[Note] ./mysqld (mysqld 5.6.25) starting as process 5310 ...
[ERROR] Can't find messagefile '/usr/local/mysql/share/errmsg.sys'
[Warning] Can't create test file /usr/local/mysql/data/me-MacBook-[Warning] Can't create test file /usr/local/mysql/data/me-MacBook-Pro.lower-test
./mysqld: Can't change dir to '/usr/local/mysql/data/' (Errcode: 2 - No such file or directory)
[ERROR] Aborting
[Note] Binlog end

这是一台 mac 机器,我也通过 sudo 命令尝试过 - 但这无济于事。

【问题讨论】:

  • 你能看看/usr/local/mysql/data这个目录是否存在吗?
  • Jens> 当然该目录不存在,因为不涉及安装过程,mysql 只是在自定义目录中解压缩,我正在尝试从那里使用它。这就是我在 Windows 中使用的方式 - 它应该可以与一些配置更改一起使用,或者我遗漏了一些东西。
  • Ixer> 我可以提供哪些详细信息?

标签: mysql linux macos osx-yosemite


【解决方案1】:

尝试传递参数-b 或--basedir= 来指定安装目录的路径。例如:

/somedir/mysql-5x/bin/mysqld --basedir=/somedir/mysql-5x/

【讨论】:

  • scai> 是的!这有点帮助......现在它似乎开始但崩溃并显示消息:“[错误]致命错误:无法打开和锁定特权表:表 mysql.user 不存在”
  • 这是一个不同的问题。您需要先通过mysql_install_db 对其进行初始化,如 BK435 的答案以及 MySQL 参考手册中所述。
【解决方案2】:

你需要安装mysql才能正常运行。当 mysql 开始运行时,它会从配置文件中读取各种配置参数,这些配置文件通常是 my.cnf。在这些参数中,有一个参数告诉 mysql data 目录在哪里。 Data 目录包含 mysql 启动所需的模式、表等。

看起来你的mysql版本默认数据目录是/usr/local/mysql/data/。由于没有安装 mysql,它不会在那里找到数据目录。另外我只提到一个参数,即data 目录。还有其他各种需要。

我建议你安装mysql然后使用它。

【讨论】:

    【解决方案3】:

    虽然 scai 的回答会让您通过最初的问题。你无疑会遇到更多的问题。您无法按照您尝试的方式正确运行 mysql。你会遇到错误,mysql会崩溃。您必须先初始化 Mysql。

    sudo mysql_install_db –user=mysql

    mysql使用的内部mysql数据库有几个:

    performance_schema,information_schema,mysql

    如果没有这些数据库和元数据文件(例如ibdata1 文件),您的 mysql 服务器将无法正常运行。因此,您现在收到错误的原因是:Table mysql.user doesn't exist

    这些资源可能会对您当前的 Mac 环境有所帮助:

    http://akrabat.com/setting-up-php-mysql-on-os-x-yosemite/

    http://dev.mysql.com/downloads/mysql/

    【讨论】:

    • BK435> 那么你有什么建议呢?我在 mysql-..\bin 目录中没有任何名为 mysql_install_db 的文件。
    • 如果有明确的可安装和 zip 版本可供使用,有人愿意从源代码下载吗?
    【解决方案4】:

    我在安装 mysql 5.7.11 时遇到了同样的问题。 设置 /etc/my.cnf 后问题得到解决,如下所述:

    basedir=<somedir>/mysql
    
    datadir=<somedir>/mysql/data
    

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2019-04-18
      • 2016-10-08
      • 2019-07-26
      • 2017-10-27
      • 1970-01-01
      • 2016-06-25
      • 2018-03-15
      • 2011-04-17
      相关资源
      最近更新 更多