Windows 下 MySQL 8.X 的安装教程
之前一直使用的是MySQL5.7,但由于MySQL增加了一些新特性,所以选择了更新。
下载MySQL
进入MySQL官网下载地址,选择Windows (x86, 64-bit), ZIP Archive。
下载地址:https://dev.mysql.com/downloads/mysql/
可不用登录,直接跳过。下载过程也许有丢丢慢,耐心等待下。
下载完成后,直接解压到自己喜欢的位置即可。
卸载原有版本
如果之前有安装低版本的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
总结