admin

win10 安装MySQL8.0 和常见问题解决

admin 数据库 2020-05-06 2338浏览 0

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

image.png


下载完成后解压 

解压完是这个样


配置初始化的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文件夹)

image.png

初始化MySQL

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


C:\Windows\System32


右键以管理员身份运行

image.png

打开后进入mysql的bin目录

image.png


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


mysqld --initialize --console

 image.png


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


如果出现系统错误问题     

image.png


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


安装MySQL服务 + 启动MySQL 服务

 安装mysql服务


执行下面的命令:


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

image.png

成功了!


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


net start mysql

启动MySQL的服务

image.png

 

总体三步走


1初始化MySQL

2创建服务

3启动服务


image.png


到这你的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来更改密码。



版权声明

本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。