安装mysql遇到的一系列坑,mysql8.0 root密码设置成了中文 同时安装mysql5.6和mysql8.0 navicate连接两个版本的mysql

本文记录了一次解决MySQL 8.0密码问题的过程,包括使用中文密码导致的问题、调整my.ini文件中的字符集设置、通过命令行解决密码问题的方法,以及如何在Navicat中成功连接MySQL 8.0。

安装了mysql8.0之后,用navicate连接mysql,结果却出现了如下错误,

上网查,答案是:


于是在mysql8.0的commond line client下进入mysql 并复制了这段代码,本想在命令行中粘贴后在改掉‘你的密码’换成自己的密码,然后再回车执行,没想到的是在命令行中右键粘贴后,该段代码直接被立即执行了,由于是初学mysql,对命令行返回的信息不明其意,未来得及重新执行正确的代码便关掉了命令行窗口,于是我的mysql root密码便变成了可悲的他妈的中文密码。于是再次从commond line clinet下进入Mysql,已经不可能了。即使在EnterPassword:后面即是换成半角输入中文也一样无济于事。

于是在网上搜到:

但是执行到 4时,mysql 命令行返回错误(忘记了截图):

大概的意思是mysql: can't change dir to C:\Program Files\MySQL\MySQL Server 8.0\data ........也就是说在这个路径下找不到这个data的文件夹,于是我在这个路径下建立了这个data文件夹,于是这个命令执行成功,并发现在新建的data文件夹下被写入了两个文件,但是到第5步时执行mysql -uroot -p 仍然无法进入mysql。于是放弃了这个方法。

最后,想到既然输入“你的密码”四个字不能进入数据库,说明这四个字与root密码不匹配,但是root密码明明就是‘你的密码’这意思字,不匹配那说明肯定是编码不一致,或者数据库不识别这四个字,进入数据库后变成了乱码。那么原因就肯定处在编码规则上,于是想找mysql的my.ini文件,却惊讶的发现mysql8.0的安装目录下根本没有*.ini文件,上网查发现,这个文件竟然藏在C:\ProgramData\MySQL\MySQL Server 8.0这个文件夹下,ProgramData这个文件夹是系统文件夹,需要在文件夹选项中设置显示系统文件,于是在my.ini文件中找到 default-character-set= 发现=后面那是空的,于是填写上utf8.

而后没有直接用mysql8.0下面的commond line client,而是在cmd的命令行下,进入安装目录的bin目录下输入:


成功进入mysql;修改密码问题解决;

再次启动Navicate for mysql,连接mysql8.0成功。

在解决这个问题的中间,还安装了一个mysql5.6,导致我的系统上现在有两个版本的mysql.此版本的mysql安装方法非常简单,将安装包拷贝到硬盘中,在命令行中进入该安装包路径下的bin目录执行 mysql -install;提示命令执行成功后,此时在windwos的服务中会增加一个mysql服务。


其中mysql Router和Mysql80是mysql8.0的服务,而此时在安装mysql8.0时安装在系统中的mysql notifier中也会出现两个服务:


如上图Mysql80-Running说明此时mysql8.0的服务启动中,mysql-stopped说明mysql5.6的服务停止。说明我们可以通过切换这两个服务来切换当前使用的mysql版本。

于是停掉80服务启动56服务,在Navicate中再次建立连接,成功。其间也出现了一些错误,最初出现的事3306端口被占用,于是在56版本的my.ini中修改了端口号,但是错误依旧,而且最终发现在my.ini中修改的端口号并不起作用,哪怕是去掉了前面的#注释符仍然不行,因为最后我在Navicata中用3306端口连接56成功时,56的my.ini中仍然是我改的3308。而且已经去掉了#注释服。期间还打开了windwos防火墙在入站规则中开启了3308端口,结果反而使得原本连接正常的80版无法连接,于是关闭了windows firewall的服务,80版连接恢复正常。总结原因可能是之前服务切换没有切换好,导致的56版无法连接。总之最后,两个版本都有3306端口成功连接Navicata。如图:



### MySQL 8.0 下载与安装方法 - **下载**:可从官网https://dev.mysql.com/downloads/mysql/ 下载,也可使用百度云链接https://pan.baidu.com/s/1bxAtnvChZZVZa39PZGZrpA ,提取密码为xrr8 ,选择Windows (x86, 64 - bit), ZIP Archive版本 [^3][^4]。 - **安装**: 1. 解压安装包到指定安装路径。 2.安装路径根目录下创建mysql初始化文件 `my.ini`,并编辑以下基本信息: ```ini [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql安装目录 basedir=D:/mysql-8.0.11-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:/mysql-8.0.11-winx64/data # 允许最大连接数 max_connections=2000 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=100 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8 ``` 3. 在系统变量中找到Path变量,将`%MYSQL_HOME%\bin` 加入 [^2][^4]。 ### Navicat 下载与安装方法 - **下载**:可参考相关教程进行下载 [^1]。 - **安装**:按照安装向导的提示完成安装。 ### Navicat 连接 MySQL 8.0 可能遇到的问题及解决方案 - **问题原因**:mysql8.0之前的版本加密规则是`mysql_native_password`,mysql8.0之后,加密规则是`caching_sha2_password` [^2]。 - **解决方案**:使用DOS命令窗口,输入如下命令: ```sh cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysql -u root -p ``` 接着执行以下3条命令: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'cui1234456' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cui123456'; FLUSH PRIVILEGES; ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wolfalcon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值