0

我正在尝试使用mysqld在 Windows 上安装 MySQL 服务。这是我的命令:

mysqld --install test123 --defaults-file="C:\mysql\my.ini" --verbose --console --explicit_defaults_for_timestamp --innodb=off

所以这就是我想要的:

  • mysql --install test123 - 安装名为 test123 的 mysql 服务
  • --defaults-file="C:\mysql\my.ini" - 使用配置文件 C:\mysql\my.ini 中的默认值
  • --verbose --console - 显示输出
  • --explicit_defaults_for_timestamp - 不显示这个恼人的警告
  • --innodb=off - 我不需要 InnoDB 存储引擎

当我运行上面的命令时,我收到错误消息unknown option '--install'。整体输出:

2013-09-09 14:17:06 3712 [Note] Plugin 'FEDERATED' is disabled.
2013-09-09 14:17:06 3712 [Note] Plugin 'InnoDB' is disabled.
2013-09-09 14:17:06 3712 [ERROR] mysqld: unknown option '--install'
2013-09-09 14:17:06 3712 [ERROR] Aborting

2013-09-09 14:17:06 3712 [Note] Binlog end
2013-09-09 14:17:06 3712 [Note] Shutting down plugin 'partition'
...many "Shutting down plugin" lines...
2013-09-09 14:17:06 3712 [Note] Shutting down plugin 'binlog'
2013-09-09 14:17:06 3712 [Note] mysqld: Shutdown complete

屏幕: http: //prntscr.com/1q9ah2

我应该对 mysqld.exe 做什么才能知道选项 --install ?

我不知道这是否重要,但在手册中写道:

在 Windows 上,如果使用--defaults-file--install选项启动服务器,则 --install 必须是第一个。否则,mysqld.exe 将尝试启动 MySQL 服务器。

在这部分还有:

如果使用--defaults-file--install选项启动服务器,则 --install 必须是第一个。

4

2 回答 2

1

我只是发现问题出在选项--verbose --console上。

当我运行此命令时,一切看起来都很好: 命令

于 2013-09-09T12:53:58.043 回答
0

我遇到了完全相同的问题并最终找到了解决方案。

基本上,除了my.ini配置文件 的完整路径之外,您不能指定任何其他额外的 mysqld 选项,该文件将包含所有其他“命令行”参数。

所以在你的情况下,唯一可行的是这个命令行:

"C:\mysql\mysqld.exe" --install "test123" --defaults-file="C:\mysql\my.ini"

请注意,我指定了mysqld.exe可执行文件
my.ini配置文件的完整路径,并且所有参数都被完全引用。

这将确保它每次都能正常工作,即使:

  • 您在同一台机器上安装了多个 mysqld 服务
  • 或 PATH 环境变量中的多个 mysql 二进制实例
  • 或者在您的 mysqld 路径、配置路径或服务名称中有空格

在我的例子中,我试图在另一个端口上安装另一个 MySQL 实例版本,
所以我的准系统 MySQL 配置文件对于默认端口 3306 如下所示:

# Simply change all the port below from 3306 to something else, such as: 3308, 3310, 3312, etc.
# if it was already taken by another MySQL service instance.
#
[client]
port=3306

[mysql]
port=3306

[mysqld]
port=3306

basedir="C:/mysql/"
datadir="C:/mysql/data"
tmpdir="C:/mysql/temp"
secure-file-priv="C:/mysql/upload"

最后,确保使用以下命令初始化丢失的数据文件夹:

"C:\mysql\bin\mysqld.exe" --initialize --verbose --console
mkdir "C:\mysql\temp\"
mkdir "C:\mysql\upload\"

服务启动后,您需要使用控制台上显示的预生成密码以 root 身份登录并更改一次。

现在您可以创建您的数据库模式,然后根据需要调整这个my.ini配置文件。

于 2021-04-07T02:25:58.807 回答