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

安装了mysql8.0之后,用navicate连接mysql,结果却出现了如下错误,安装mysql遇到的一系列坑,mysql8.0 root密码设置成了中文 同时安装mysql5.6和mysql8.0 navicate连接两个版本的mysql

上网查,答案是:

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

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

于是在网上搜到:

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

但是执行到 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遇到的一系列坑,mysql8.0 root密码设置成了中文 同时安装mysql5.6和mysql8.0 navicate连接两个版本的mysql

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

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

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

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

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

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

如上图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遇到的一系列坑,mysql8.0 root密码设置成了中文 同时安装mysql5.6和mysql8.0 navicate连接两个版本的mysql安装mysql遇到的一系列坑,mysql8.0 root密码设置成了中文 同时安装mysql5.6和mysql8.0 navicate连接两个版本的mysql