MySQL8相比之前版本改动还是挺大,主要有以下几点:
(MySQL的官网地址:https://www.mysql.com/)
Mysql 8 下载地址 https://dev.mysql.com/downloads/mysql/
PS:因为现在大多数软件都是64位的,建议还在使用32位的朋友尽快更换64位系统,下面辉哥以64位做演示,尽量下载官方稳定包,还可以选择其他版本
进入官网 点击DOWNLOADS
个人使用,选择社区免费版
点击MySQL Community Server
操作系统选择windows,选择下载zip 包
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目录
mysqld --initialize --console
记好生成的用户名和密码
mysqld --install
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’
依次执行:
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 连接测试:
期间安装mysql 过程中,3306 端口 和我本地虚拟机开放的本机端口监听端口3306 冲突,导致连接mysql 报错,始终连接不上。报错如下:
关闭虚拟机后,连接成功,需要将虚拟机的监听端口修改为别的端口以防冲突。
依次进入【计算机】》右键【属性】》【高级系统设置】》【环境变量】,点击系统变量的path变量,然后点击编辑
path 里面对应添加