乐趣区

MySQL系列Windows-下-MySQL-8X-的安装

之前一直使用的是 MySQL5.7,但由于 MySQL 增加了一些新特性,所以选择了更新。

下载 MySQL

进入 MySQL 官网下载地址,选择 Windows (x86, 64-bit), ZIP Archive。

下载地址:https://dev.mysql.com/downloa…

可不用登录,直接跳过。下载过程也许有丢丢慢,耐心等待下。

下载完成后,直接解压到自己喜欢的位置即可。

卸载原有版本

如果之前有安装低版本的 MySQL,需要先卸载之前的 MySQL。如果没有安装过,可直接跳过该步骤。

管理员打开 cmd,先 net stop mysql 停掉 mysql 服务,然后使用 mysqld remove MySQL 移除 MySQL。

net stop mysql 
mysqld remove MySQL 

删除注册表信息,以免有时候无法正常安装新版本。以下有就删除,但我在操作时仅仅只有第一个存在。

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL

修改原有 MySQL_HOME 的环境变量指向新版本位置。

安装 MySQL

在 MySQL 的解压目录里,新建 data 文件夹,并创建 my.ini 配置文件。

[mysqld]
# 设置 3306 端口
port=3306
# 设置 mysql 的安装目录
basedir=E:\\tools\\MySQL\\mysql-8.0.18-winx64
# 设置 mysql 数据库的数据的存放目录
datadir=E:\\tools\\MySQL\\mysql-8.0.18-winx64\\data
# 允许最大连接数
max_connections=3000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为 UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

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

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

进入 bin 目录,执行 mysqld –initialize –console,执行成功会输出临时密码。

mysqld --initialize --console

执行成功后会输出:A temporary password is generated for root@localhost: a4lcly4e8f-G
a4lcly4e8f- G 就是临时密码 

然后使用该密码就可以进行了,幸运的话,就可以正常进入 MySQL。

登录报错

如果不幸地,在使用临时密码登录时报错,ERROR 1045 (28000):Access denied for user ‘root’@’localhost’ (using password: YES)。

遇到此问题,需要跳过密码校验。

先停掉 MySQL 服务:net stop mysql

在 MySQL 安装路径的 bin 目录,输入 mysqld –console –skip-grant-tables –shared-memory,此时 cmd 窗口会被挂起,也就是看起来卡住一样,不用担心,这是正常现象。

然后再打开另一个窗口,同样是 MySQL 安装路径的 bin 目录,直接输入 mysql,在执行 use mysql。

使用 flush privileges 刷新权限,再 alter user’root’@’localhost’ IDENTIFIED BY ‘1234’; 更改密码。

保险起见,再次使用 flush privileges 刷新权限。

关闭窗口,使用刚刚的密码重新连接 MySQL:mysql -u root -p,然后再输入密码。若显示服务未启动,需先启动 MySQL 服务,输入 net start mysql。

# 关闭 MySQL
net stop mysql

# 跳过权限校验
mysqld --console --skip-grant-tables --shared-memory

# 刷新权限
flush privileges

# --skip-grant-tables 模式下连接 MySQL
mysql

# 使用系统 mysql 库
use mysql

# 更改密码
alter user 'root'@'localhost' IDENTIFIED BY '1234';

# 刷新权限
flush privileges

# 连接 MySQL,-u、- p 后空格可省略,- p 后可不输入密码,再回车后再键入密码,这样更安全
mysql -u root -p 1234

# 退出 MySQL
\q
exit
quit
退出移动版