MySQL 9.0 创新版发布,大失所望。。

嗨,大家好,我是鱼皮。
2 02 4 年7 月1 日,MySQL推出了9 .0创新版,跟那些LTS长期支持版不一样,这个版本更新得更快,能更快地带来新功能和改动,就像是尝鲜版,适合那些喜欢探索新技术的小伙伴们。
我仔细翻阅了官方文档,把这次发布的新功能都了解了个遍,接下来就让我带大家一探究竟,看看MySQL 9 .0都带来了哪些新变化。

新亮点: 1 . 事件SQL支持Prepared语句:MySQL中的事件是用来安排定时任务的,比如定期清理数据。
现在,MySQL 9 .0支持事件SQL使用Prepared语句,这样可以提高性能和安全性。

2 . PerformanceSchema新增两张表:PerformanceSchema是监控MySQL服务器性能的工具,这次增加了两张新表。

3 . SQL语句优化:现在可以用特定语法将EXPLAIN ANALYZE的JSON输出保存到用户变量中,之后可以作为MySQL JSON函数的参数使用。

4 . 向量存储:AI的兴起让向量数据库变得热门,虽然MySQL官方日志中没有提到对向量存储的支持,但社区版已经有人测试成功。

5 . 其他改进:还优化了Windows系统上MySQL的安装和使用体验。

废弃与移除: 1 . 移除了MySQL 8 .0中废弃的mysql_native_password认证插件,并拒绝旧客户端的认证请求。

2 . PerformanceSchema中variables_info表的MIN_VALUE和MAX_VALUE列已废弃,未来可能移除。

3 . ER_SUBQUERY_NO_1 _ROW从错误列表中移除,因为升级到9 .0后,某些带有IGNORE关键字的语句可能会出错。

总体来说,MySQL 9 .0的新版让我有点失望。
之前网上关于新特性的猜测很多,但实际发布的新特性并不多。
除了修复了1 00多个Bug,几乎没什么对开发者有用的更新。
我们最关心的使用难度、成本和性能提升,这次都没得到满足。
对比一下PostgreSQL,都从1 1 更新到1 7 版本了,MySQL这创新程度让人有点怀疑。

最后,MySQL 9 .0创新版的下载地址我就不提供了,咱们还是继续用5 .7 和8 .0版本吧,MySQL的新版本还有很长的路要走呢!

查询失败! 使用方法'mysql native password' 对用户 'root' 进行到主机 '10.1

最近遇到了一个挺烦人的问题,就是用mysql_native_password的方式去连接root用户在1 0.1 主机上的MySQL数据库时,老是连接不上。
这背后可能的原因有不少,像是身份验证方式不匹配、远程权限没开启,或者是插件没加载。
咱们一个个来看看怎么解决这些问题。

首先是身份验证方式不匹配的问题。
这主要是因为从MySQL 8 .0开始,默认的加密认证方式从mysql_native_password改成了caching_sha2 _password。
如果你还坚持用mysql_native_password去连接,而服务器那边又用的是caching_sha2 _password,那自然就是连不上了。

解决这个问题的方法其实挺简单的,首先你得确认一下服务器的版本和默认的身份验证方式。
如果服务器用的是caching_sha2 _password,但你的客户端又不太支持这个方式,那就可以在MySQL服务器的配置文件里把默认的身份验证方式改回mysql_native_password。
比如说,你可以去修改my.cnf或者my.ini文件中的[mysqld]部分,加上一行default_authentication_plugin=mysql_native_password。

接下来是远程权限未开启的问题。
这也很常见,就是如果你在MySQL服务器上没有设置允许从特定的IP地址(比如1 0.1 )进行远程连接,那就算身份验证方式对了,也是连不上的。

解决这个问题的方法也很直接,就是得确保你已经给root用户授予了从1 0.1 这个IP地址连接的权限。
你可以用GRANT ALL PRIVILEGES ON . TO 'root'@'1 0.1 ' IDENTIFIED BY 'YourPassword' WITH GRANT OPTION;这个命令来给root用户授权(当然,要注意的是,在MySQL 8 .0及以上版本中,IDENTIFIED BY子句的位置和语法可能会有点不一样)。

最后是插件未加载的问题。
这通常是因为如果你尝试使用的插件在MySQL服务器上没有被加载,那肯定也是连不上的。

解决这个问题的方法就是检查一下MySQL用户表中的插件列,看看root用户用的是不是跟你尝试连接时使用的插件相匹配的插件。
如果root用户的插件列显示的是mysql_native_password,但服务器上又没有加载这个插件,那你就得启动这个插件或者换个身份验证方式。

当然,这里说的这些步骤可能还需要根据你具体的MySQL服务器配置和客户端环境来调整。
如果问题还是解决不了,我建议你还是去查阅一下MySQL的官方文档,或者找专业的技术支持来帮忙看看。

MySQL 9.0 创新版发布,大失所望。。

嗨,小伙伴们!2 02 4 年7 月1 日,MySQL带来了备受瞩目的9 .0创新版!相较于LTS版本,这个版本更新频率更高,带来新鲜特性,简直就像是尝鲜的版本,特别适合喜欢尝鲜的程序员们。
但遗憾的是,这次的新特性可能并没有达到大家的期望。
来,跟着我一起看看这次都有哪些大动作吧!
新特性亮点:
1 . 事件SQL支持Prepared语句:MySQL9 .0让事件调度变得灵活高效,可以轻松管理数据库中的定时任务。

2 . PerformanceSchema新增表:新加入的variables_metadata和global_variable_attributes表,让你对MySQL服务器性能有更深入的了解。

3 . SQL语句优化:EXPLAINANALYZE的JSON输出现在可以直接存到用户变量中,方便大家分析和优化数据库性能。

4 . 向量存储:MySQL可能已经悄悄支持了向量存储,这对于AI时代的开发者来说是个好消息。

5 . Windows体验升级:MySQL9 .0还对Windows系统上的安装和使用体验进行了优化。

废弃和移除的部分:
1 . mysql_native_password认证插件:这个插件已经被移除,虽然客户端上还能用,但安全性更高了,旧客户端可能会受影响。

2 . PerformanceSchema的variables_info表:MIN_VALUE和MAX_VALUE列已废弃,可能未来会移除,开发者们得更新代码了。

3 . ER_SUBQUERY_NO_1 _ROW错误处理:这个错误处理方式已经改变,一些老SQL可能需要更新。

总结:
虽然MySQL9 .0创新版带来了一些新功能,但似乎还没完全达到大家的期待。
不过,作为一款成熟的数据库管理系统,MySQL一直都在进步。
咱们且看且珍惜,未来版本可能会有更多惊喜等着我们哦!