MySQL 未在 XAMPP 和 HeidiSQL 上启动

Posted

技术标签:

【中文标题】MySQL 未在 XAMPP 和 HeidiSQL 上启动【英文标题】:MySQL not starting on XAMP and HeidiSQL 【发布时间】:2019-12-02 01:36:24 【问题描述】:

我无法使用 XAMPP 启动 mysql,并且我没有收到任何错误。因此,如果我单击“开始”,我会收到消息“01:26:41 [mysql] Attempting to start MySQL service...”,仅此而已。

问题可能是,因为我也安装了MariaDB自带的HeidiSQL。我知道他们都使用相同的端口(3306),我已经尝试将 MariaDB 的端口更改为 3308。

这是my.ini的内容:

[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"

datadir=C:/Program Files/MariaDB 10.3/data
port=3308
innodb_buffer_pool_size=2033M
character-set-server=utf8
[client]
port=3308
plugin-dir=C:/Program Files/MariaDB 10.3/lib/plugin

mysql_error.log

2019-07-24  1:18:11 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2019-07-24  1:18:11 0 [Note] InnoDB: Uses event mutexes
2019-07-24  1:18:11 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-07-24  1:18:11 0 [Note] InnoDB: Number of pools: 1
2019-07-24  1:18:11 0 [Note] InnoDB: Using SSE2 crc32 instructions
2019-07-24  1:18:11 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2019-07-24  1:18:11 0 [Note] InnoDB: Completed initialization of buffer pool
2019-07-24  1:18:11 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1791378
2019-07-24  1:18:11 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2019-07-24  1:18:11 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2019-07-24  1:18:11 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2019-07-24  1:18:11 0 [Note] InnoDB: Setting file 'C:\xampp\mysql\data\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2019-07-24  1:18:11 0 [Note] InnoDB: File 'C:\xampp\mysql\data\ibtmp1' size is now 12 MB.
2019-07-24  1:18:11 0 [Note] InnoDB: Waiting for purge to start
2019-07-24  1:18:11 0 [Note] InnoDB: 10.3.16 started; log sequence number 1791387; transaction id 163
2019-07-24  1:18:11 0 [Note] InnoDB: Loading buffer pool(s) from C:\xampp\mysql\data\ib_buffer_pool
2019-07-24  1:18:11 0 [Note] InnoDB: Buffer pool(s) load completed at 190724  1:18:11
2019-07-24  1:18:11 0 [Note] Plugin 'FEEDBACK' is disabled.
2019-07-24  1:18:11 0 [Note] Server socket created on IP: '::'.
2019-07-24  1:18:11 0 [Note] Reading of all Master_info entries succeeded
2019-07-24  1:18:11 0 [Note] Added new Master_info '' to hash table
2019-07-24  1:18:11 0 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '10.3.16-MariaDB'  socket: ''  port: 3307  mariadb.org binary distribution

我已经尝试了来自 that questions 的所有答案,但没有一个对我有用。

不仅 XAMPP,我什至无法与 HeidiSQL 建立连接。错误信息是:

无法连接到“127.0.0.1”上的 MySQL 服务器 (10061)

我已经卸载了 XAMPP 和 HeidiSQL 并再次安装了它们。即使这样也无济于事。任何帮助将不胜感激!

【问题讨论】:

Windows 任务管理器是否显示 mysqld 正在运行的后台进程?如果 HeidiSQL 包含 MariaDB,为什么还要 XAMPP 参与? @WilsonHauck 如果我单击 XAMPP 上的“开始”,mysql.exe 不会在任务管理器上运行,但如果我启动服务MySQL80(在services.msc)然后开始连接HeidiSQL,我在任务管理器中看到mysql.exe 被列出了两次。 免责声明:我是我的个人资料中提到的网站的内容作者,带有联系信息的网络个人资料,如果您联系,将尽力提供帮助。这不是可以在 SO 上回答的一问一答的情况,涉及的部分太多。 【参考方案1】:

HeidiSQL 只会通过端口 3306 连接到您的 MySQL 实例,但它不会侦听任何端口,因此它不会使用您所说的任何端口。

所以你的问题是未启动的 MySQL 服务。

您的 my.ini 看起来好像您已经运行了两个服务:

一个来自 C:\Program Files\MariaDB 10.3\ 一个来自 C:\xampp\mysql\

查看您的服务控制面板,例如通过从开始菜单运行services.msc。然后,注意名为“MySQL”或“MariaDB”的服务,或者其中包含一些版本号的服务。

您的 my.ini 在 [mysqld] 部分中包含两个端口定义,这可能意味着您的 Xamp/MySQL 仍然需要端口 3306,而忽略后面的 3308。这再次解释了为什么您的服务无法启动,如果您的 MariaDB 服务仍在运行。

对安装 MariaDB 的意图一无所知,我建议将其卸载,或者至少将服务启动选项更改为 manually

【讨论】:

谢谢安斯。通过运行services.msc,我看到我有MySQLMySQL80。我已将它们的 Starttypes 更改为 Manual,现在 HeidiSQL 已连接,但 XAMPP 保持不变,仍无法连接。 两个服务之一仍在运行 - 否则 HeidiSQL 将无法连接。可能重启你的电脑一次。 是的,MySQL80 运行。我无法运行其他服务,因为我收到服务MySQL 无法在“本地计算机”上启动的消息,并且我收到系统找不到文件的错误。也许这就是 XAMPP 中的 MySQL 无法连接的原因。 你的两个 MySQL 服务都在使用 3306 端口,所以第二个失败了。只需为其中一个设置不同的端口,然后删除重复的端口设置。 不是真的,因为如果我开始与 HeidiSQL 的连接,我使用的是 3308 端口并且它会被连接。

以上是关于MySQL 未在 XAMPP 和 HeidiSQL 上启动的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 未在 Xampp 控制面板上启动

Sql 数据库未在 mac 中启动 XAMPP

由于此处不允许 AccessFileName,Apache 未在 XAMPP 上启动

图像未在 XAMPP 中加载

XAMPP 服务器未在 Macos Sierra 中启动

XAMPP 未在 Window 8.1 中运行 [关闭]