我正在按照本教程 here 创建 JDBC 编程。我已经按照控制台命令的步骤启动服务器:
// For Windows
cd {path-to-mysql-bin} // Check your MySQL installed directory
mysqld --console
我收到以下错误消息:
mysqld: Can't change dir to 'C:\Program Files\MySQL\MySQL Server 5.7\data\' (Errcode: 2 - No such file or directory)
2017-01-06T10:54:36.968210Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-01-06T10:54:36.968210Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2017-01-06T10:54:36.968210Z 0 [Note] mysqld (mysqld 5.7.17) starting as process 11248 ...
2017-01-06T10:54:36.974226Z 0 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.7\data\DESKTOP-DEQ2IC2.lower-test
2017-01-06T10:54:36.975229Z 0 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.7\data\DESKTOP-DEQ2IC2.lower-test
2017-01-06T10:54:36.975229Z 0 [ERROR] failed to set datadir to C:\Program Files\MySQL\MySQL Server 5.7\data\
2017-01-06T10:54:36.976231Z 0 [ERROR] Aborting
2017-01-06T10:54:36.977234Z 0 [Note] Binlog end
2017-01-06T10:54:36.978237Z 0 [Note] mysqld: Shutdown complete
我对以这种方式使用 MySql 很陌生,但我可以看到服务器目录中没有数据文件夹,也没有 my.ini 文件,我假设它包含有关数据目录位置的配置信息。我还使用我已经阅读过的 Windows 安装程序安装了 MySql,这可能就是为什么没有 my.ini 文件而只有一个模板 my-default.ini 文件的原因。 有人知道为什么会这样吗?
C:\Program Files\MySQL\MySQL Server 8.0.
中创建数据文件夹使用 创建一个新文件
(ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';)
密码重置命令(如果需要)
确保您的文件在
C:
驱动器中。根文件夹。
然后执行以下命令:
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
如您的错误描述“无法创建测试文件 C:\Program Files\MySQL\MySQL Server 5.7\data...”,MySQL 安装位置似乎没有名为“
data”的文件夹。很可能它可能驻留在“my.init”文件存在的地方(ProgramData)。否则可能是文件夹的名称不是“数据”而是“Data”。 您可以从初始化文件存在的位置复制数据文件夹并粘贴到可执行位置。另外,将文件夹的名称更改为
data,如果它是大写的。
bin\mysqld --initialize --console
,一切都解决了。在某些情况下,应该先创建数据文件夹。 windows和其他有不同的参数。
请参阅以下链接:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html
https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html#data-directory-initialization-password-assignment
https://dev.mysql.com/doc/refman/8.0/en/option-files.html
D:/
驱动器上安装了带有Windows安装程序的MySQL,并设置为
NOT作为Windows服务运行。 我设法通过将
my.ini
从 C:\ProgramData\MySQL\MySQL Server 8.0移动到 MySQL 安装文件夹来解决问题。
并将目录更改为您的 D: 路径
[mysqld]
datadir=D:\program files\xampp\mysql\data
[client]
C:\Program Files\MySQL\MySQL Server 8.0\bin>**mysqld --console**
2021-02-27T23:46:09.919345Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.23) starting as process 7296
2021-02-27T23:46:09.926583Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2021-02-27T23:46:09.926798Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2021-02-27T23:46:09.927086Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)
2021-02-27T23:46:09.933751Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-02-27T23:46:09.934110Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.23) MySQL Community Server - GPL.
是我需要在C:\ProgramData\MySQL\MySQL Server 8.0
中重新创建my.ini文件并添加到这个:
[mysqld]
datadir=C:\ProgramData\MySQL\MySQL Server 8.0\Data
将编码设置为 ANSI 并保存文件。
然后服务就可以开始了:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80
使用新的 MSI 安装程序安装也没有解决问题,它一直挂起,直到我进行了上述调整。
portable-windows-x64-8.0.8-0-VS16
如 \ xampp \ readme_en.txt 中所述,只需将其置于驱动器的根目录即可工作
NOTE: Unpack the package to your USB stick or a partition of your choice.
There it must be on the highest level like E:\ or W:\.
希望有帮助