目录
Mysql5.8安装踩坑记录,推荐使用Docker安装,我是电脑虚拟化可能会蓝屏没用这个功能。
0、 前言
第一次安装mysql可以直接按顺序来,如果电脑有其他mysql环境先把之前的mysql彻底卸载,报错服务、文件夹、注册表、环境变量配置等。推荐使用geek软件直接卸载mysql,https://geekuninstaller.com/download,官网下载地址。这个会卸载对应的注册表信息。
这个是其他博主彻底卸载mysql的手动方法,是在没办法就手动挡吧。https://www.cnblogs.com/niujifei/p/14844447.html
1、下载MySQL5.8
下载地址:https://dev.mysql.com/downloads/mysql/
点击下载可以,不用注册oracle,可以直接下载
注意,官网默认是最新版本,可以点击Archives下载你想要的版本!!
不用注册oracle,可以直接下载
2、如何安装、配置
mysql-8.1.0-winx64.zip下载完成后,解压放到D:\sofware目录下,mysql-8.1.0-winx64重命名mysql-8.0.17。
D:\sofware\mysql-8.1.0目录下创建my.ini文件
my.ini配置
注意
-
文件路径注意是两个\
不然会报错 -
根目录的Data目录不要手动创建
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\sofware\\mysql-8.1.0
# 设置mysql数据库的数据的存放目录
datadir=D:\\sofware\\mysql-8.1.0\\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为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
3初始化mysql
3.1. 初始化mysql
以管理员权限进入安装目录下的bin目录,初始化mysql,要记录随机生成的密码
D:\sofware\mysql-8.1.0\bin> mysqld --initialize --console
mysqld --initialize --console 记住随机密码后面需要用
3.2. 安装mysql服务
mysqld --install MySQL
3.3. 启动mysql
启动mysql
net start mysql
额外命令:
net stop mysql
3.4. 登录mysql
D:\sofware\mysql-8.0.17\bin>mysql -uroot -p
Enter password: ************
3.5. 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
要是这个会报错
解决办法:
https://blog.csdn.net/eggsound/article/details/105621149
注意上面的引号是中文的。
3.6. 配置远程连接
1 使用 mysql库:
use mysql;
2 .在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;
执行完上面的命令后会显示一个表格
查看表格中root
用户的 host
,默认应该显示的 localhost
,只支持本地访问,不允许远程访问。
3.授权 root 用户的所有权限并设置远程访问
GRANT ALL ON *.* TO 'root'@'%';
GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。
如果提示:
update user set host='%' where user = 'root';
再执行两次
GRANT ALL ON *.* TO 'root'@'%';
4.刷新权限
所有操作后,应执行
flush privileges;
5.查看 root 用户的 host
再次执行步骤 2,你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。
select host, user, authentication_string, plugin from user;
6.访问数据库
我这里直接使用Navicat访问成功
可能会遇到的问题 2059错误
远程访问数据库的可视化工具比较多如:Navicat、SQLyog、MySQL workbench 等,我这里使用 Navicat 输入访问的
host 和密码,报 2059 错误,这是因为 MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
此问题有两种方法,一种是更新 Navicat 驱动来解决此问题,另一种是将 MySQL 用户登录的加密规则修改为
mysql_native_password,第一种方法我试过了没有起作用,我这里采用第二种方法。
解决办法:修改加密规则
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE
NEVER; password 为你当前密码。
配置环境变量
https://www.cnblogs.com/iZOHC/p/16660194.html
双数据库不冲突方法
安装mysql5.6和mysql8.0有两个方案、
1 安装一个虚拟机,VXbox或者VM都可以。然后能跟主机ping同,在虚拟机安装一个不同版本的数据库,设置好目录映射挂载。
2 都安装windows下,设置两个系统变量MYSQL8.0_HOME 和MYSQL5.6_HOME来表示不同的msyql,在系统path里面设置两个。并且修改其中的配置端口3306。