Question:

MySQL(解压版)安装时提示“MySQL服务正在启动,MySQL服务无法启动。服务没有报告任何错误。”

InnoDB: Unable to create temporary file; 

错误提示如下图

mysql正在运行事务_MySQL

Analysis:

猛然一看这个错误真的很懵逼,无法启动还没有任何错误报告。

这个错误其实是个例,具体原因我也不知道。

同样的操作,在我的笔记本上就能正常启动MySQL服务,在台式机上就提示这个错误。

于是只有打开我们万能的百度看看能不能解决。。。

结果看了好多好多还是没有解决,不过还是有了启发,才有了本文的解决办法。

~~~~~~

首先初始化完成之后未启动MySQL服务

mysql正在运行事务_mysql正在运行事务_02

查看{你的电脑名}.err文件

如下图

mysql正在运行事务_Java_03

在这个文件中我们可以看到没有任何错误信息

如下图

mysql正在运行事务_mysql正在运行事务_04

当我们进行net start mysql的时候就会出现下面的错误信息

如下图

mysql正在运行事务_mysql正在运行事务_05

然后会看到这个错误信息

后面的错误也都是因为这个错误才出现的

创建临时文件的方法也很简单

只需要在my.ini文件中加入一行代码就OK

tmpdir=D:\Java\mysql-5.7.28-winx64\temp

然后我也加了

依然是Question中的错误信息

后来突然想到有一篇博文说的是basedir和datadir要用“\\”才不会出错

而且在C编程中我们表示路径一般都是用“\\”表示路径分隔符

# 设置mysql的安装目录
# 切记此处一定要用双斜杠\\,单斜杠我这里会出错
# 不过看别人的教程,有的是单斜杠。自己尝试吧
basedir=D:\\Java\\mysql-5.7.28-winx64  

# 设置mysql数据库的数据的存放目录
datadir=D:\\Java\\mysql-5.7.28-winx64\\data

于是就把tmpdir=D:\Java\mysql-5.7.28-winx64\temp

变成了tmpdir=D:\\Java\mysql-5.7.28-winx64\\temp

加入到my.ini文件中

mysql正在运行事务_mysql_06

成功解决问题

Solution:

非常简单的解决办法

我们这种个例

只需要把my.ini文件改一下就OK了

下面是my.ini文件

[mysqld]
# 设置3306端口
port=3306

# 设置mysql的安装目录
# 切记此处一定要用双斜杠\\
# 我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
basedir=D:\\Java\\mysql-5.7.28-winx64   

# 设置mysql数据库的数据的存放目录
datadir=D:\\Java\\mysql-5.7.28-winx64\\data 
  

# 临时文件夹
tmpdir=D:\\Java\\mysql-5.7.28-winx64\\temp

# 允许最大连接数
max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
#default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8