mysqld:无法将dir更改为数据.服务器无法启动

Fee*_*eco 64 mysql

我用安装程序安装了MySQL服务器,然后启动了.重启后我尝试再次启动它并得到错误:

D:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld -u root -p
mysqld: Can't change dir to 'D:\Program Files\MySQL\MySQL Server 5.7\data\'     (Errcode: 2 - No such file or directory)
2015-11-17T08:30:18.822962Z 0 [Warning] TIMESTAMP with implicit DEFAULT     value is deprecated. Please use --explicit_defaults_for_timestamp server option     (see documentation for more details).
2015-11-17T08:30:18.822962Z 0 [Warning] Insecure configuration for --secure-    file    -priv: Current value does not restrict location of generated files.     Consider setting it to a valid, non-empty path.
2015-11-17T08:30:18.822962Z 0 [Note] mysqld (mysqld 5.7.9) starting as     process 1108 ...
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
2015-11-17T08:30:18.838586Z 0 [ERROR] failed to set datadir to D:\Program     Files\MySQL\MySQL Server 5.7\data\
2015-11-17T08:30:18.838586Z 0 [ERROR] Aborting


2015-11-17T08:30:18.838586Z 0 [Note] Binlog end
2015-11-17T08:30:18.838586Z 0 [Note] mysqld: Shutdown complete
Run Code Online (Sandbox Code Playgroud)

我试图重新安装MySQL.
更新:
当我mysqld -u root -p以管理员身份运行时,没有任何反应.

小智 66

我遇到了同样的问题.在我的情况下,我没有 ..\datadir,C:\mysql\所以我只是mysqld --initializec:\mysql\bin\目录执行命令,我得到了数据目录c:\mysql\data.之后我可以使用mysqld.exe --console命令来测试服务器启动.

  • 作为记录,安装和配置 MySQL 服务器“noinstall”版本的完整过程[在官方文档中]有详细介绍(https://dev.mysql.com/doc/refman/8.0/en/windows-install -archive.html) (2认同)
  • 另外,不要忘记以“管理员”身份启动“cmd”(即右键单击“cmd” --> 以管理员身份运行 (2认同)

Aar*_*son 61

由于您使用的是Windows安装程序,所以一切都已设置为运行MySQL 5.7作为Windows服务,在大多数情况下这是一个很好的选择.

而不是mysqld.exe从命令行运行,

  1. Win + R
  2. services.msc
  3. 右键单击 MySQL57
  4. 启动服务.

  • 除非你安装过程中指定(像我一样),你不希望安装的MySQL服务器作为服务.比服务完全不创造,你会在服务白白地寻找它. (8认同)
  • 如果你一直在使用MySQL,你可以要求它自动加载Windows.按照@AaronDanielson说明,右键单击MySQL57服务,打开"属性",将"初始化类型"从"手动"更改为"自动". (2认同)
  • 首先运行“mysqld -u root --initialize-insecure”。它将以 root 用户身份创建数据文件夹,无需密码和必要的文件。然后运行“mysqld.exe --console”。 (2认同)

Han*_*han 22

就我而言,我已将数据目录安装到其他位置.所以数据目录确实不在默认位置.因此,当我mysqld从命令提示符运行命令时,我必须手动指定数据目录:

mysqld --datadir=D:/MySQLData/Data

这是mysqld命令行参数的文档.


小智 11

我为新安装做了什么(Windows 10):

  1. 以管理员模式启动cmd(通过点击Windows键,输入cmd,右键单击它并选择"以管理员身份运行"以管理员身份运行

  2. 切换到"MySQL Server XY"目录(对我来说,完整路径是C:\ Program Files\MySQL\MySQL Server 5.7")

  3. 使用notepad创建一个my.ini,其中mysqld部分指向您的数据目录

    [mysqld]
    datadir="X:\Your Directory Path and Name"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建了上面my.ini中标识的目录.

  5. 更改为服务器目录下的bin目录并执行: mysqld --initialize

  6. 一旦完成,启动服务,它就好了.

  • `mysqld --initialize`为我做了诀窍. (15认同)

Ste*_*uet 7

  1. 检查导演是否存在.
  2. 如果存在,请确保mysql具有访问权限(读/写).将MySQL作为系统进程运行可能是一个好主意,但不是强制性的.

如果这个stil不工作,请尝试使用以下带有双斜杠的表示法:C:\ WebSerer\MySQL\data或C:/ WebServer/MySQL/data


Niz*_*zar 5

首轮

mysqld -u root --initialize-insecure 
Run Code Online (Sandbox Code Playgroud)

它将以root用户身份创建数据文件夹,而无需密码。然后跑

mysqld.exe -u root --console
Run Code Online (Sandbox Code Playgroud)