今天试了一下mysql的远程连接,自己操作是这样
前面讲这个错误给我心酸的故事,如果情况紧急可以直接拉到最后看怎么解决
这样
然后就这样了
我寻思我ssh账号密码Ip地址对的呀,然后去网上找了一下1251报错
百度第一页的博客都说是mysql8.0加密兼容问题,然后着我当时寻思我的mysql版本是5.6啊,不管了,死马当活马医,就对着原文https://blog.csdn.net/xdmfc/article/details/80263215的样子一顿操作
开始输入第一个命令 mysql -u root -p
第一步就报错了 命令行提示 mysql 这个命令找不到,我寻思我也是下载了mysql的呀,难道下错了?
于是再次上网查,答案乱七八糟,因为没一个提到环境变量的,所以就没有一个解决了我的问题。
于是我用我蠢的脑瓜子想了想,之前搞java全家桶时,不小心删了几个环境变量导致npm命令直接炸了,那可能就是环境变量的问题。于是校正了搜索的关键词——mysql环境变量,搞了一下,欸,行了
应该是他们认为没有人蠢到不给mysql设置环境变量的,我做前端的不太懂,我npm 了那么多 -g的东西,也没有让我设置过环境变量呀,只有之前装java全家桶的时候搞过,至今还不明白——为什么软件自己不把环境变量搞好,非要用户多做这一步简单而又关键又容易忽略的操作呢。(真心求教没有鄙视的意思,应该有不可告人的原因)
好,继续进入正题,mysql命令可以用了,就输入mysql -u root -p,输入密码!进入成功!
继续跟着博客依样画葫芦
输入第一个指令
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
直接报错,提示语法错误。。坎坎坷坷。。。。所以论系统性学习的重要性
咋办呢,继续百度,然后又出来一些牛头不对马尾的内容。只能又用蠢的脑袋想想方法了。
欸,会不会是版本问题博客的教程是【升到8.0后的 1251报错解决】而我是5.6版本的,他们的语句是不是我不能用呀,于是找5.6能用的命令语句。
过程如下——
找不到–>卸载–>打开mysql官网–>重装–>重装后mysql 炸了,服务都开不了,搜了一下说是卸载时没清干净,于是照了网上的再清理了一遍,期间重启了100次——>失败——>重装电脑
安装mysql8.0.x,安装成功——>配置环境变量——>打开命令行
mysql -u root -p,输入密码!进入成功!
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;成功!
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123’;成功!
mysql> FLUSH PRIVILEGES;成功!
打开navicat!
新建链接!
输入地址端口用户名密码!
点击确定!
。。。。。。。
那就不是百度搜索出来的第123456页中的原因了
所以只能又动起脑瓜子——会不会是常规中的选项也要改,链接地址改为服务器地址,果不其然,直接失败
继续上百度搜,常规中的选项要不要改,于是搜到这篇
看起来好有道理!而且评论区还有一个人在那里回复说:“我看了那么多博客,只有你这个成功了!”(我现在以lex的语气打出了这句话)
然后尝试,失败
那就又只能用自己的脑瓜子想了,常规中的账号密码是不是只能用云端服务器的账号和密码,于是试了一下
成功了。。。一时间没缓过来,所以我开始说了,如果事情紧急,直接拉到最后看结果。
常规
链接名随便写,
主机名localhost,端口3306,用户名和密码写云端的登陆数据库用的用户名和密码,不要写本地的
如图
SSH
ip地址是服务端,端口基本为22,这的用户名和密码是要在服务端设置添加过许可的
点击确定!