先去官网下载点击的MySQL的下载

mysql老是自动初始化 mysql初始化失败怎么解决_MySQL

下载完成后解压

解压完是这个样

配置初始化的my.ini文件的文件

解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件,将文件类型改为的.ini),写入基本配置:

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=C:\Program Files\MySQL

# 设置mysql数据库的数据的存放目录

datadir=C:\Program Files\MySQL\Data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

# 服务端使用的字符集默认为utf8mb4

character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

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

#mysql_native_password

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8mb4

配置文件中的路径要和实际存放的路径一致(8.0.18不要手动创建Data文件夹)

mysql老是自动初始化 mysql初始化失败怎么解决_Server_02

初始化MySQL

在安装时,避免权限问题出错我们尽量使用管理员身份运行CMD,否则在安装时会报错,会导致安装失败的情况

C:\Windows\System32

右键以管理员身份运行

mysql老是自动初始化 mysql初始化失败怎么解决_mysql_03

打开后进入mysql的bin目录

mysql老是自动初始化 mysql初始化失败怎么解决_win10 mysql初始化失败_04

在MySQL目录下的bin目录下执行命令:

mysqld --initialize --console

mysql老是自动初始化 mysql初始化失败怎么解决_Server_05

注意![注意] [MY-010454] [服务器]为root @ localhost生成临时密码:9P0gYk-?0,kT其中root @ localhost:后面的9P0gYk-?0,kT就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。复制密码先保存起来!!!

如果出现系统错误问题

mysql老是自动初始化 mysql初始化失败怎么解决_mysql老是自动初始化_06

列:这个是因为缺少微软的一些运行所需的库。这个百度一下都可以找到下载源安装一下(可能需要重启  )

安装MySQL服务 + 启动MySQL 服务

安装mysql服务

执行下面的命令:

mysqld --install [服务名]                     ###(服务名可以不加默认为mysql)

mysql老是自动初始化 mysql初始化失败怎么解决_win10 mysql初始化失败_07

成功了!

服务安装成功之后通过命令

net start mysql

启动MySQL的服务

mysql老是自动初始化 mysql初始化失败怎么解决_MySQL_08

总体三步走

1初始化MySQL

2创建服务

3启动服务

mysql老是自动初始化 mysql初始化失败怎么解决_win10 mysql初始化失败_09

到这你的MySQL已经是安装好了!

常见问题

这时候使用net start mysql,就会显示服务已经成功启动。

Can’t connect to MySQL server on ‘localhost’

然而在命令行输入mysql,却发现出现了Can't connect to MySQL server on 'localhost' 报错信息,但是查看任务管理器-服务,却发现mysql服务明明在运行。这时候查看安装目录下的 data 文件夹,可以看到一个后缀名为.err的文件。打开可以看到如下的报错信息:

2018-09-13T02:07:54.423068Z 0 [ERROR][MY-010131] [Server] TCP/IP, –shared-memory, or –named-pipe should be configured on NT OS

2018-09-13T02:07:54.423571Z 0 [ERROR][MY-010119] [Server] Aborting

2018-09-13T02:07:54.606308Z 0 [Warning][MY-011311] [Server] Plugin mysqlx reported: ‘All I/O interfaces are disabled, X Protocol won’t be accessible’

于是怀疑mysql并没有成功地设置好网络,于是看命令行netstat -ano,发现的确3306端口没有占用。

怀疑是防火墙的问题,把防火墙关闭,或者新建规则,却依然不能连接。在网上搜索了大量时间后,才发现是skip-grant-tables的问题。在官方文档里,有:

If the server is started with the --skip-grant-tables option to disable authentication checks, the server enables --skip-networking automatically to prevent remote connections.

好像是MySql8.0版本才加入了这个特性。

于是把skip-grant-tables 从my.ini去掉,或者加上shared-memory,可以解决这个问题。注意当skip-grant-tables去掉后,就必须记住生成的随机密码,然后要新建数据库,就需要alter user来更改密码。