我有一个包含 mysql/mariadb 的 xampp-portable 目录。xampp 目录直接位于 上d:
,因此路径为d:\xampp
,mysql 为d:\xampp\mysql
我想要将 mysql 作为 Windows 服务运行,以便它在系统启动时自动启动。好的。
我确实以提升的权限运行了以下命令d:\xampp\mysql\bin
:mysqld --install MySQL defaults-file="d:\xampp\mysql\bin\my.ini"
命令成功(Service successfully installed.
)
以下命令(以控制台或独立模式启动)也会成功:
mysqld --defaults=file-d:\xampp\mysql\bin\my.ini --standalone
mysqld --defaults-file=d:\xampp\mysql\bin\my.ini --console
因此我认为配置文件是正确的。
但net start MySQL
失败并出现 1067 错误。为 MySQL 服务生成的命令是D:\xampp\mysql\bin\mysqld defaults-file=d:\xampp\mysql\bin\my.ini MySQL
,并且该命令也失败且没有任何消息。
1067 错误有几十种解决方案
- 检查防火墙规则(防火墙已禁用)
- 从数据目录中删除所有 ib* 文件
- 验证路径正确
- 验证路径在必要时使用大写字母
- 卸载/重新安装 MySQL 服务(
mysqld -remove MySQL
由于 MySQL 没有运行而失败,因此sc delete MySQL
要删除服务注册)
我有点迷茫。我唯一能想到的就是权限问题。但由于服务以“本地系统”运行,因此该服务应该可以访问所有内容。有什么建议吗?
D:\xampp\mysql\data\name.err
这是尝试使用以下命令启动服务后的日志文件内容net start MySQL
编辑1:
2023-05-12 7:52:01 0 [Note] Starting MariaDB 10.4.28-MariaDB source revision c8f2e9a5c0ac5905f28b050b7df5a9ffd914b7e7 as process 11092
2023-05-12 7:52:01 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2023-05-12 7:52:01 0 [Note] InnoDB: Uses event mutexes
2023-05-12 7:52:01 0 [Note] InnoDB: Compressed tables use zlib 1.2.12
2023-05-12 7:52:01 0 [Note] InnoDB: Number of pools: 1
2023-05-12 7:52:01 0 [Note] InnoDB: Using SSE2 crc32 instructions
2023-05-12 7:52:01 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2023-05-12 7:52:01 0 [Note] InnoDB: Completed initialization of buffer pool
2023-05-12 7:52:01 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2023-05-12 7:52:01 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2023-05-12 7:52:01 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2023-05-12 7:52:01 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
2023-05-12 7:52:01 0 [Note] InnoDB: 10.4.28 started; log sequence number 50709; transaction id 8
2023-05-12 7:52:01 0 [Note] InnoDB: Loading buffer pool(s) from D:\xampp\mysql\data\ib_buffer_pool
2023-05-12 7:52:01 0 [Note] Plugin 'FEEDBACK' is disabled.
2023-05-12 7:52:01 0 [Note] InnoDB: Buffer pool(s) load completed at 230512 7:52:01
D:\xampp\mysql\bin\mysqld: Too many arguments (first extra is 'defaults-file=d:\xampp\mysql\bin\my.ini').
2023-05-12 7:52:01 0 [ERROR] Aborting
EDIT2/解决方案:
我的安装命令错误:
rem wrong
mysqld --install MySQL defaults-file="d:\xampp\mysql\bin\my.ini"
rem correct: double-dash prefix for parameter defaults-file
mysqld --install MySQL --defaults-file="d:\xampp\mysql\bin\my.ini"
答案1
我现在注意到,在为服务生成的命令中,缺少 -- 参数,不知道是拼写错误还是实际错误。
无论如何,我也使用 xampp,并且为了安装服务,我使用了集成的脚本,在你的情况下应该是:
D:\xampp\mysql\mysql_installservice.bat
因此,请尝试删除实际服务,然后运行此脚本。
您也可以通过单击 mysql 旁边的红色 X 从 xampp 控制面板进行安装
答案2
您是否在仅使用命令行进行安装?您是否可以检查 mysql 日志文件和 windows 事件查看器,看看是否有关于该错误的更多信息(最终来自远程 windows pc)。