一. 前言
MySQL8相比之前版本改动还是挺大,主要有以下几点:
- MySQL8之后并不需要my.ini,会自动的生成data文件夹在解压之后的文件,端口默认3306,。若有这个文件,则初始化mysql不成功。
- 自己若新建并设置了my.ini 文件,有data文件的话,在初始化之前要删除。然后再初始化
- 在初始化之后会自动生成密码,要记下来,后续登上mysql需改密码之后才可后续操作。
- 要更改加密规则,不然无法使用工具连接mysql
二. 安装
1.下载MySQL
(MySQL的官网地址:https://www.mysql.com/)
Mysql 8 下载地址 https://dev.mysql.com/downloads/mysql/
PS:因为现在大多数软件都是64位的,建议还在使用32位的朋友尽快更换64位系统,下面辉哥以64位做演示,尽量下载官方稳定包,还可以选择其他版本
-
进入官网 点击DOWNLOADS
-
个人使用,选择社区免费版
-
点击MySQL Community Server
-
操作系统选择windows,选择下载zip 包
2. 安装MySQL
- 将zip 包解压到自定义安装位置
PS: 解压后默认是不包含 Data 文件夹 和 my.ini 文件的,Data 文件夹是在执行
mysqld --initialize --console
命令的之后生成的,在初始化my.ini 配置参数的同时生成一个默认密码(在MySql版本5.7.20 后都会默认生成一个密码)
如果有需要可以自己创建一个my.ini 文件,这样在初始化之后,就不用再去修改,字符集、mysql_native_password 等内容了,只需修改下密码和远程访问权限即可。
my.ini 的初始化配置如下: 自己可以根据需要修改
[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=E:\Program Files\mysql\mysql-8.0.31-winx64
#设置mysql数据库的数据的存放目录
datadir=E:\Program Files\mysql\mysql-8.0.31-winx64\Data
#允许最大连接数
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#超时
wait_timeout=86400
#服务端使用的字符集默认为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
使用管理员身份打开cmd (win10 用户设置cmd 管理员权限)(电脑“开始”搜索“命令”,右键“管理员身份打开” 命令提示符),进入到你mysql解压的bin目录
- 初始化MySQL,并记录生成的用户密码root的随机密码),在命令窗口内输入:
mysqld --initialize --console
记好生成的用户名和密码
- 安装MySQL服务,命令窗口内输入:
mysqld --install
- 启动MySQL服务,命令窗口内输入:
net start mysql
- 修改密码
在命令窗口内输入:mysql -u root -p
,然后输入刚才生成的密码
在命令窗口内依次输入:
alter user 'root'@'localhost'identified by 'password'
修改加密规则:
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘password’
- 给root 用户开放远程权限 (有需要则执行这一步)
依次执行:
show databases;
use mysql;
在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;
可以看到root用户的host默认为localhost,只允许本地访问,不允许远程连接,新创建一个用户用于远程连接
新建用户:
create user 'root'@'%' IDENTIFIED BY 'password';
继续查询发现新增了一条root 用户信息
mysql8.0默认的加密方式是“caching_sha2_password”,而navicat只支持以前的"mysql_native_password", 如果你本地数据库加密方式不是mysql_native_password,则接下来需要修改密码加密方式
alter user ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY
‘password’;
修改后可以执行select host,user,plugin from user;语句,查看新增用户的plugin是否是"mysql_native_password"
设置该账户可以远程登陆:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
刷新权限列表:
flush privileges;
查看防火墙状态:netsh advfirewall show allprofiles
本地navicate 连接测试:
3.小结:
期间安装mysql 过程中,3306 端口 和我本地虚拟机开放的本机端口监听端口3306 冲突,导致连接mysql 报错,始终连接不上。报错如下:
关闭虚拟机后,连接成功,需要将虚拟机的监听端口修改为别的端口以防冲突。
4.修改环境变量
依次进入【计算机】》右键【属性】》【高级系统设置】》【环境变量】,点击系统变量的path变量,然后点击编辑
path 里面对应添加
3.完全卸载
- 停止服务:使用net stop mysql(‘你的服务名’) 命令 或
【win+R快捷键】》输入services.msc》进入服务窗口关闭mysql服务; - 卸载程序:使用360卸载mysql程序 或 【控制面板】》【程序和功能】》右键卸载程序;
删除项目根文件夹:进入mysql安装位置,删除mysql的解压文件夹; - 检查服务是否完全删除:如果mysql服务还在,可以使用 ‘sc delete mysql ‘ 来删除服务;
删除C盘隐藏文件夹:显示隐藏文件后,删除C盘下的“C:\ProgramData\MySQL ”所有文件; - 删除注册表信息:【win+R快捷键】》输入regedit 命令打开注册表窗口,删除以下文件
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL - 删除环境变量里的配置:如果有更改了环境变量,那么进入【计算机】》右键【属性】》【高级系统设置】》【环境变量】》删除系统变量中的MYSQL_HOME变量和删除Path变量中的mysql路径;
- 全盘搜索mysql关键字检查:这里使用everything全盘搜索mysql关键字,可以查看系统所有相关文件,以防遗漏。