文章851
标签121
分类10

[踩坑] 记录一次 第三方类库选择中遇到的坑

近期工作上需要用到 列式存储数据库 ClickHouse.
我们服务端语言使用的 PHP. 中间发生一些比较低级的错误问题, 简单记录描述一下

这个故事除我外包含2个开发同学

接到需求是 从 网上找一个适用于PHP的轮子, 简单写个增删改查.

A同学到composer 中找了个 star和下载 最高,且php版本适配的包.

列式存储数据库 ClickHouse介绍

ClickHouse介绍

一、clickhouse简介

ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的用于在线分析处理查询(OLAP :Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream,Data WareHouse。

clickhouse可以做用户行为分析,流批一体

[踩坑] MySQL 8 错误:Authentication plugin 'caching_sha2_password' cannot be loaded

抛错内容

ERROR 2059 (HY000): Authentication plugin 'sha256_password' cannot be loaded: /usr/lib64/mysql/plugin/sha256_password.so: cannot open shared object file: No such file or directory

在使用 MySQL 8 进行身份验证时,有时会遇到错误消息 "Authentication plugin 'caching_sha2_password' cannot be loaded"。这个错误通常发生在尝试连接到 MySQL 8 数据库时,表示 MySQL 客户端无法加载所需的身份验证插件。

错误原因

MySQL 8 默认使用 caching_sha2_password 身份验证插件,而旧版本的 MySQL 客户端可能不支持此插件。因此,在使用旧版本的客户端连接到 MySQL 8 时,会出现 "Authentication plugin 'caching_sha2_password' cannot be loaded" 错误。

解决方法

要解决这个错误,可以尝试以下方法:

1. 更新 MySQL 客户端版本

升级 MySQL 客户端到与 MySQL 8 兼容的版本。新版本的客户端通常支持 caching_sha2_password 身份验证插件,可以成功连接到 MySQL 8。

2. 修改 MySQL 用户的身份验证插件

如果无法升级客户端或不希望升级,可以修改 MySQL 用户的身份验证插件,以使用旧版本客户端支持的插件。以下是修改用户身份验证插件的步骤:

  1. 使用兼容的 MySQL 客户端连接到 MySQL 8 数据库。
  2. 运行以下 SQL 命令更改用户的身份验证插件:

    ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

    将 'username' 替换为实际的用户名,'localhost' 替换为实际的主机名,并将 'password' 替换为实际的密码。

  3. 刷新权限:

    FLUSH PRIVILEGES;

    这将使修改后的身份验证插件生效。

3. 创建支持的用户

如果不想修改现有用户的身份验证插件,可以创建一个新的用户,使用支持的身份验证插件,并授予所需的权限。这样,新用户就可以使用旧版本的客户端连接到 MySQL 8。

结论

"Authentication plugin 'caching_sha2_password' cannot be loaded" 错误在连接到 MySQL 8 数据库时可能会出现,这是由于 MySQL 8 默认使用的身份验证插件与旧版本的客户端不兼容造成的。通过更新 MySQL 客户端版本、修改用户的身份验证插件或创建支持的用户,可以解决这个错误。

希望本篇技术博客对您有所帮助!

引用文献

">