总结mysql8.0及以上版本遇到的坑
本⼈是去年下载的mysql 8.0.18版本的数据库的,在下载数据库时,和许多⼩⽩⼀样,
以为最新的就是最好的,于是就下载当时的最新版8.0.18版本的mysql,结果就⾛上了⼀条
满是坑的数据库使⽤之路。关于mysql 8.0以上的版本的坑⽹上也很多,我就说三个让我
印象最深的坑
NO.1
去年下半年我开始学习Javaweb,Javaweb可以专门写⼀个Java类去实现与数据库的连接,这个
类中需要使⽤⼀条jdbc驱动语句,相信朋友们都已经知道,这就是Class.forName("sql.jdbc.Driver");
由于我是⼩⽩,刚开始只知道⽹上教的就是这么写,直到有⼀次,⽼师让我们完成⼀个向数据库⾥⾯添加数据,
我很快写完,结果连接不了数据库,还⼀直报Loading class `sql.jdbc.Driver'. This is deprecated
这个错导致我调了⼀下午代码最后也没写出来,最后才知道mysql 8.0以上的版本只能使⽤这个jdbc驱动
Class.forName("sql.cj.jdbc.Driver");
NO.2
今年上半年⽼师要求我们⽤app完成⼀个全球疫情的简单数据展⽰,当我写好代码,⼀运⾏,程序报错,
但上⽹⼀查报错原因,居然没有,我⼜仔细的检查了代码,没发现有错,报错原因不到,app⼀运⾏就
报错,最后我终于发现了原因,不是代码的原因,是因为我的mysql数据库是8.0以上的版本,Android Studio
⽆法使⽤8.0以上的mysql-java架包去连接对应的8.0以上的数据库,最后⽤了5.7版本的mysql-java架包才成功
连接上mysql 8.0.18数据库,唉,⾜⾜在这个问题上浪费了⼀天的时间
NO.3
这个学期有php课程,这两天需要完成⽤php代码连接mysql数据库,我按照⽼师的教程写了⼀个测试连接的php代码
header('content-type:text/html;charset=utf-8');
$link = mysqli_connect('localhost','root','123');
if(!$link){
echo "连接失败!";
}
else echo "连接成功";
结果我连接失败了,别⼈都连接成功了,还好这次报了两个错
(1)mysqli_real_connect(): The server requested authentication method unknown to the client [sha256_password]
(2)The server requested authentication method unknown to the client
上⽹⼀查,不⽤说,估计你们都知道了,对,没错,⼜是mysql 8.0以上的版本因为新配置导致的问题,解决⽅法
⾸先在你的mysql配置⽂件下的my.ini⽂件或者没有my.ini,也有可能是mysql数据库⽬录下的etc/myf配置⽂件
加上这样⼀句配置语句
default_authentication_plugin=mysql_native_password
然后保存修改,回到桌⾯,点击此电脑-管理-服务和本地程序-服务,然后到mysql,关掉mysql服务再重新开启(相当于重启)
让你刚才的配置⽂件得到修改
然后使⽤cmd进⼊mysql的bin⽬录下,登录mysql(这种教程很多,过程我就不说了),登录成功会进去mysql的命令⾏,执⾏以下mysql命令>use mysql
>ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'你的密码';
> FLUSH PRIVILEGES;
你的密码就是你的mysql的root⽤户密码(也就是你登录⽤的密码)
然后使⽤exit;命令退出mysql,重新运⾏你的php代码,就解决了
mysql下载配置说了这么多,这是⾃⼰第⼀次写总结性的问题解决,感觉还⾏,说不定以后还⽤得上
不知道未来使⽤mysql 8.0以上的版本还会遇到什么坑,且学且总结吧
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论