Mysql【8.0.13-8.0.18】安装图解教程

前言

某日使用Navicat登录mysql发现登录不上去,改完当前的报错,又出新的报错信息,于是我卸载了,花了些时间重新安装,特此记下,免得下次又忘了…
目前我所找到的教程都是先新建配置文件,然后在初始化data目录,到我这就一直报错,“找不到文件”等等其他报错,卡了挺久,于是我就先初始化后配置,才没有发生那些错误,如果有知道原因的朋友,欢迎文章末尾留言告知【抱拳】

一、下载并安装包

  • 先到官网下载MySQL https://dev.mysql.com/downloads/mysql/
    Mysql【8.0.13-8.0.18】安装图解教程_第1张图片

  • 将安装包解压到你指定的位置,解压后如图:

  1. 安装版的会有一个 my.ini 文件,解压版的没有,所以需要自己在根目录下新建 my.ini 文件,写入基础设置
  2. 解压版解压后有 data 文件,但我自己解压出来却没有;(这里后面会提到怎么解决)

Mysql【8.0.13-8.0.18】安装图解教程_第2张图片

  • 以管理员身份运行 cmd,进入 MySQL 的解压安装目录下的 bin 文件下:
    Mysql【8.0.13-8.0.18】安装图解教程_第3张图片

  • 在 bin 目录下敲:mysqld --initialize --console
    等待一会后出现如下信息,注意 root@localhost: 后面的字符串,这是随机生成的数据库密码,需要记下来之后的登录用得着,若不小心关掉了这个窗口,就去根目录下删掉 data文件夹,再执行一遍初始化命令又会重新生成。
    Mysql【8.0.13-8.0.18】安装图解教程_第4张图片
    出现 data 目录后,输入 mysqld --install 安装 mysql 服务,输入 net start mysql 启动服务(net stop mysql 停止服务):
    Mysql【8.0.13-8.0.18】安装图解教程_第5张图片

  • 输入 mysql -u root -p,将之前生成的随机密码输入进去登录,进入 mysql 命令模式:
    Mysql【8.0.13-8.0.18】安装图解教程_第6张图片
    注意:如果报错:mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option.
    问题:mysqld命令是MySQL的主程序,用来安装初始化;mysql是MySQL的命令行工具;这里因为命令敲成了mysqld -u root -p导致的;

  • 有时候 mysql 服务已经安装了,用 mysqld -u root -p 登录会显示**“发生系统错误 2 找不到系统指定文件”**

这时候我们需要把服务移除掉,重新安装服务:输入 mysqld -remove

操作如图:
Mysql【8.0.13-8.0.18】安装图解教程_第7张图片

  • 这时候在根目录下新建一个 my.ini 配置文件,内容如下:
[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录,这里根据自己的解压目录来写

basedir=D:\mysql-8.0.13-winx64

# 设置mysql数据库的数据的存放目录,解压后的文件里有个data文件夹

datadir=D:\mysql-8.0.13-winx64\data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

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

character-set-server=utf8

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

default-storage-engine=INNODB

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

#mysql_native_password

default_authentication_plugin=mysql_native_password

[mysql]

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

default-character-set=utf8

[client]

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

port=3306

default-character-set=utf8
  • 回到命令行,将密码修改我们便于记忆的内容,输入 alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘要修改的密码’; 敲回车(不要忘记分号)
  • 接着输入 flush privileges; 敲回车(不要忘记分号)

Tips:MySQL8.0 与 MySQL5.0 所采用的加密方式规则不一样,默认的是:caching_sha2_password,我们需要将默认的 caching_sha2_password 改为mysql_native_password 即可;

  • 输入 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’; 敲回车(不要忘记分号),即可修改root用户的加密规则以及密码。

其他错误:

  1. 授权出错,显示 You are not allowed to create a user with GRANT
    原因:在网上有很多教程说当出现 The user specified as a definer (‘root’@’%’) does not exist 时表示 root 用户权限不足,只需要执行 GRANT ALL ON . TO ‘root’@’%’; 就可以了,但是往往又会出现 You are not allowed to create a user with GRANT 的错误提示。
    这是因为 GRANT ALL ON . TO ‘root’@’%’; 这条语句中 @’%’ 中的百分号其实是 root 用户对应 host 的名称,很多人并没有注意到他的 root 用户对应的其实是 localhost ,直接就执行了上面的语句,所以才会报错。

解决方案:只要将 GRANT ALL ON . TO ‘root’@’%’; 中的 % 改为对应的 host 名称即可,最后还要刷新一下权限 FLUSH PRIVILEGES; 。

特别说明:网上说 % 表示通配所有的 host,但是操作时并不成功,不明白是为什么,我猜想可能与 MySQL8.0 版本有关系。

参考网址:链接
如有不正确的地方,欢迎留言指出!

你可能感兴趣的:(安装向,安装教程)