由于换了新电脑,需要重新装mysql,直接下载了mysql最新版的8.0,没想到配置完成之后 在设置登录密码的时候,出现了意外的错误,很是不解,找了半天找到了解决方法,现记录如下:
一、下载mysql压缩包文件。
8.0.21 下载地址:http://dev.mysql.com/downloads/mysql/
二、解压到本地,开始安装本地服务
我这里解压的目录为:D:\mysql\mysql-8.0.21-winx64
新建一个配置文件,文件名叫my.ini
内容为:
注意修改自己对应的目录。
安装mysql服务:
- 使用管理员权限启动cmd窗口,win10用户直接右键左下角的Windows徽标,选择
Windows PowerShell(管理员)
,win7用户需要去C盘C:\Windows\System32
路径下,右键cmd.exe
,以管理员身份运行。 - 将目录切换到你解压文件的D:\mysql\mysql-8.0.21-winx64\bin目录,初始化和启动Mysql服务:
- 初始化,生成data文件夹:
mysqld --initialize-insecure
(此命令不设置root密码,mysqld --initialize (会生成一个随机的root密码)) - 安装MySql服务 :
mysqld install
- 注意这里不是
mysql
而是 mysqld
- 启动mysql服务:
net start mysql
- 登录mysql,由于没有设置密码,可以直接在命令行使用:
mysql -u root
进入mysql - 修改密码那里,8.0的版本使用命令:
ALTER USER "root"@"localhost" IDENTIFIED BY "abc123456";
- 至此,mysql服务安装成功了。
由于原来安装的时候,没有在my.ini里面指定加密认证方式,所以采用了默认的加密认证方式caching_sha2_password
,这样会出现一种问题就是:可以在命令行里面登录mysql,但是可视化工具就不行,比如我用Navicat for mysql的提示:client does not support authentication protocol requested by server; consider upgrading MySQL client
现在已更新加密方式,安装成功后,可以正常使用Navicat连接了,如果失败,再按照下面方式解决。
Navicat 12 如下图,不支持此加密方式。
修改方式为:
- 先使用命令行进入mysql
- 修改加密方式:
- 更改密码:该例子中
abc123456
为新密码
- 刷新
再次连接:
如果报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’:
则是远程访问权限不正确,修改mysql数据库中user表 连接为"%"即可。
2021-01-28
初始化data文件夹时,提示异常:
安装完成后打开C:\Windows\System32, 可以找到文件vcruntime140_1.dll
安装之后提示需要重启电脑,才能生效,运行上面安装的库文件。我这里没有重启,再次初始化,则初始化成功了。