TFX 1.4.0配置MySQL 8.0为元数据库连接失败问题咨询
TFX 1.4.0连接MySQL 8.0元数据库失败解决方案
核心问题定位
你的配置存在两个已知的典型问题,同时MySQL 8.0默认配置和TFX 1.4.0依赖的ML Metadata库存在兼容性问题:
- 配置参数名错误:
mysql_metadata_connection_config的身份参数是user而非username - MySQL 8.0默认使用
caching_sha2_password认证插件,TFX 1.4.0依赖的底层libmysqlclient不支持该加密方式 - 未提前创建
ml_metadata数据库(TFX不会自动创建目标库)
修复步骤
1. 修正TFX元数据连接配置
将配置中的username参数改为user,按需添加SSL禁用参数避免证书校验问题:
from tfx import v1 as tfx # [...] Add a simple CsvExampleGen tfx.dsl.Pipeline( pipeline_name=pipeline_name, pipeline_root=pipeline_root, components=components, metadata_connection_config=tfx.orchestration.metadata .mysql_metadata_connection_config( host="127.0.0.1", port=3306, database="ml_metadata", user="root", # 此处修正参数名 password="password", additional_connection_args="--ssl-mode=DISABLED"), # 按需添加,关闭SSL校验 beam_pipeline_args=beam_pipeline_args, )
2. 调整MySQL 8.0配置
登录MySQL命令行执行以下操作:
- 手动创建ML Metadata所需的数据库
CREATE DATABASE IF NOT EXISTS ml_metadata CHARACTER SET utf8;
- 修改root用户的认证插件为旧版兼容模式,替换下方的
password为你实际的数据库密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
3. 安装系统依赖
确保你的运行环境安装了MySQL客户端开发库:
- Debian/Ubuntu系统:
sudo apt install -y libmysqlclient-dev
- RHEL/CentOS系统:
sudo yum install -y mysql-devel
完成以上步骤后重新运行流水线即可正常连接元数据库。
内容的提问来源于stack exchange,提问作者McB
相关产品推荐
相关产品推荐

