遇到的问题:
1、执行
mysql -u root -p
时,回车提示输入密码,然后不输入密码(或者输入临时生成的密码)直接回车出现报错。
2、Navicat连接出错。
用以下方式安装可以解决。
一、准备工作
1、解压mysql-8.0.13-winx64.zip
2、配置环境变量D:\mysql-8.0.13-winx64\bin(自己的安装目录)到path变量。
PS:环境变量可以不配置,但每次执行命令的时候要先进入到bin下。
二、安装流程
1、如果你已经安装过mysql服务,请先卸载服务,卸载服务前请先确认服务已关闭。
mysqld remove mysql
注意:mysql是你的服务名字,是你注册服务时候设定的,如果不清楚可以到控制面板>管理工具>查看本地服务中查找。
2、如果你之前已经创建过服务,请手动删除data文件夹(提示被占用往往是你的mysql服务正在启动,先关闭)。
关闭mysql服务
net stop mysql
PS:同理,mysql是你的服务名字,并且和启动mysql服务的命令一样都是属于windos的,不需要配置mysql的环境变量也可执行。
3、在根目录下创建my.ini文件,这里只配置了一些基本属性。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.13-winx64
# 设置mysql的数据库存放目录
datadir=D:\mysql-8.0.13-winx64/data
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
PS:路径记得改成自己的。
4、进入cmd(快捷键win+R,记得用管理员身份,防止可能存在的权限错误)
5、输入命令(如果之前安装过服务,确认服务已经卸载,安装目录下data文件夹已被清空或已被删除)
mysqld --initialize-insecure --user=mysql
这个命令会根据my.ini配置文件对mysql数据库进行初始化(data文件夹就是此时自动创建的),时间可能会比较长,请耐心等待。
PS:如果提示:“由于找不到msvcp140.dll无法继续执行代码”,请检查microsoft visual c++是否安装或损坏。
6、接着注册mysql服务,
mysqld install mysql defaults-file=d:\mysql-8.0.13-winx64\my.ini
如果出现:Failed to install the service (Couldn't create service),请尝试使用
mysqld install mysql
服务名mysql可以省略。
此时才真正的创建了名为mysql(名字可以自取)的服务,data文件夹下会生成日志文件
PS:data文件夹下生成的xxx.err文件里可能会有默认密码(我使用时没有,可能是版本问题)。
7、启动mysql服务
net start mysql
8、启动成功后,登陆root用户
mysql -u root -p
回车提示要输入密码,我使用时是没有默认密码的(如果有输入默认密码),所以直接回车进入mysql>。
9、更改root用户密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
好像由于版本关系对密码的安全性要求变高了,尽量使用英文+数字+特殊符号来做密码,避免报错,如:admin3#
PS:如果出现报错:mysql.user表不存在,是你的my.ini文件中的data路径没写。或者初始化出现错误(第5步)。
修改成功后,如果你无法用Navicat连接,是你的my.ini没有配置(8.0版本加密方式发生改变,所以不配置是连接不了的,但cmd模式下登陆没问题)
default_authentication_plugin=mysql_native_password
补救方法,先修改加密方法:
dos命令下登陆root用户,输入命令
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;
然后更改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
刷新:
FLUSH PRIVILEGES;
即可用Navicat连接。