尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SAP Data Services 连接 MySQL 的 ODBC 驱动配置与 SSL 字符集避坑指南
简介本资源是一份面向SAP数据集成工程师与ETL开发人员的实操指南聚焦SAP Data Services连接MySQL数据库的核心配置流程解决跨平台数据源接入、元数据导入与表级数据验证等典型问题。文档以步骤化方式详解ODBC驱动配置、Data Store创建、MySQL连接参数设置、元数据批量导入及dimcustomer等表结构与数据预览操作并强调服务状态、版本兼容性与账号安全等关键注意事项适用于数据迁移、BI建模前的数据准备等业务场景。资源为单个1.43MB的Word文档.docx内容完整覆盖界面路径、参数填写要点与测试验证环节便于快速查阅与实操复现。目前已有1618人学习下载读者可直接获取标准化连接配置方法、常见报错规避提示及MySQL元数据在Data Services中的可视化操作路径。1. SAP Data Services 连 MySQL 不是配个地址就行ODBC 驱动选错、SSL 绕不过、字符集一崩全垮你不是第一个在 SAP Data Services以下简称 DS里连不上 MySQL 的人——也不是最后一个。很多人卡在「测试连接成功」却跑不通作业或者作业跑一半报SQLSTATE HY000、[08001]、SSL provider: certificate chain was issued by an authority that is not trusted这类错误最后发现根本不是密码或端口问题而是 ODBC 驱动版本、SSL 模式、字符集映射这三座山没翻过去。SAP Data Services 本身不自带 MySQL 原生驱动它只认 ODBC而 MySQL 官方推荐的 Connector/ODBC 8.0 默认强制 SSLDS 又不自动处理证书链信任结果就是本地 Navicat 能连DS 里点测试就红叉。本文专治这个「能连不能用、能测不能跑、能跑但乱码」的闭环问题。适合正在做 SAP BW/4HANA 数据入湖、主数据同步、或把 MySQL 业务库接入 DS 做 ETL 的 BI 工程师、数据集成工程师和 SAP ABAP 开发转数据方向的同事。我们不讲 SAP DS 架构原理只拆解从 Windows/Linux 服务器上装驱动、建 DSN、配 DS 数据库连接、到跑通第一个 SELECT * 的完整链路每一步都带参数依据、失败日志定位点和可验证命令。2. 用 MySQL Connector/ODBC 8.0.33 在 Windows 和 Linux 上建可信 DSN驱动版本、SSL 模式与字符集三定乾坤SAP Data Services 对 ODBC 的依赖是硬性的它通过 Microsoft ODBC Driver ManagerWindows或 unixODBCLinux调用底层驱动再由驱动翻译 SQL 语句与 MySQL 通信。这意味着——DS 本身不决定能否连上真正起作用的是你装的 ODBC 驱动版本、DS 进程加载的 DSN 配置、以及 MySQL 服务端的 SSL 策略是否兼容。别信网上“随便下个 MySQL ODBC 驱动就能用”的说法DS 14.2主流生产版本在 Windows Server 2016/RHEL 8 环境下必须用MySQL Connector/ODBC 8.0.33x64或8.0.31这两个版本对 UTF8MB4 支持稳定、SSL handshake 兼容性好、且与 DS 内置的 ODBC 封装层无符号冲突。低于 8.0.29 的版本在 DS 中常触发SQLAllocHandle on SQL_HANDLE_ENV failed高于 8.0.33 的 8.0.34 则因引入 TLS 1.3 强制协商在 DS 未打补丁的环境下易报[08001] SSL provider: certificate chain...错误。2.1 Windows 下安装 Connector/ODBC 并配置系统 DSN非用户 DSN提示SAP Data Services Designer 和 Job Server 必须以同一账户运行且该账户需有权限读取系统 DSN。务必用「系统 DSN」用户 DSN 仅当前登录用户可见DS 服务进程无法继承。下载地址https://dev.mysql.com/downloads/connector/odbc/选择mysql-connector-odbc-8.0.33-winx64.msi注意是x64版本DS 64 位进程无法加载 32 位驱动安装过程关键操作安装向导中勾选Install for all users否则 DSN 不写入 HKEY_LOCAL_MACHINE安装完成后打开ODBC Data Source Administrator (64-bit)→ 切换到System DSN标签页 → 点击Add选择驱动MySQL ODBC 8.0 Unicode Driver不是 ANSIDS 默认走 Unicode 编码路径DSN 名称填DS_MySQL_Prod建议含环境标识避免与开发/测试混淆TCP/IP 设置Server:10.20.30.40MySQL 实际 IP不要用 localhost 或 127.0.0.1DS 服务可能跨网卡绑定Port:3306若改过端口请同步填写User:ds_etl_user专用账号权限最小化SELECT, INSERT, UPDATE, DELETE, SHOW VIEWon target schemasPassword: 输入密码DS 连接时会复用此密码不建议存明文后文讲加密方案Advanced 标签页关键勾选✅Use Unicode强制启用 UTF16→UTF8MB4 映射✅Dont Optimize Column Width避免 DS 读取 metadata 时因列宽截断报错✅Allow Big Results防止大数据量 result set 溢出❌SSL Enforced此处必须取消勾选后续在 DS 连接字符串里显式控制 SSLSSL 标签页SSL Mode:Disabled先关掉确保基础连通性后续再开其他 SSL 字段留空CA cert / Client cert / Key 不填点击 OK 后回到 System DSN 列表选中刚建的DS_MySQL_Prod→ 点击Configure→ 再点Test。此时应显示Connection successful.。若失败请立即检查 Windows 事件查看器中Application日志搜索关键词myodbc常见错误如Cant connect to MySQL server on xxx (10061)表示网络不通Access denied for user表示账号权限不足。2.2 LinuxRHEL/CentOS 8下用 rpm 安装并注册 unixODBC DSNDS Job Server 在 Linux 上依赖 unixODBC 2.3.7。CentOS 8 默认源中 unixODBC 版本偏低2.3.6需手动升级# 升级 unixODBC必须否则 DS 加载驱动失败 sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install -y unixODBC-devel unixODBC # 验证版本 odbcinst -j # 输出应含unixODBC 2.3.7 或更高安装 MySQL Connector/ODBC# 下载 rpm 包x86_64 架构 wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.33-1.el8.x86_64.rpm # 安装自动注册驱动到 /etc/odbcinst.ini sudo rpm -ivh mysql-connector-odbc-8.0.33-1.el8.x86_64.rpm # 验证驱动注册 cat /etc/odbcinst.ini | grep -A 5 MySQL ODBC 8.0 # 应看到类似 # [MySQL ODBC 8.0 Unicode Driver] # Driver /usr/lib64/libmyodbc8w.so # Setup /usr/lib64/libodbcmyS.so # UsageCount 1 # CPTimeout # CPReuse 创建系统级 DSN写入/etc/odbc.iniDS Job Server 才能全局访问# /etc/odbc.ini [DS_MySQL_Prod] Driver MySQL ODBC 8.0 Unicode Driver Description MySQL for SAP DS Production Server 10.20.30.40 Port 3306 Database sales_db User ds_etl_user Password your_strong_password Option 3 Socket Stmt Charset utf8mb4 SSLMode disabled参数说明Option 3是 MySQL ODBC 的 magic number等价于 Windows GUI 中勾选的Dont Optimize Column WidthAllow Big ResultsCharset utf8mb4强制驱动使用四字节 UTF8避免 DS 解析中文/emoji 时乱码SSLMode disabled是安全起点比留空更明确防止驱动默认启用 SSLDatabase字段填默认 schemaDS 中可覆盖但此处设好能加速 metadata 获取。测试连通性用 DS Job Server 运行账户执行# 切换到 DS 服务账户如 dsuser sudo su - dsuser # 使用 isql 测试DS 底层调用的就是这个 CLI isql -v DS_MySQL_Prod ds_etl_user your_strong_password # 成功返回 # --------------------------------------- # | Connected! | # | | # | sql-statement | # | help [tablename] | # | quit | # | | # --------------------------------------- # SQL若报错[ISQL]ERROR: Could not SQLConnect先查/var/log/messages是否有myodbc相关 segfault再运行ldd /usr/lib64/libmyodbc8w.so | grep not found确认 glibc 版本兼容性RHEL 8 需 glibc 2.28。3. 在 SAP Data Services Designer 中配置 MySQL 数据库连接DSN、连接字符串与字符集映射实操DS Designer 中新建数据库连接表面看只是填个 DSN 名实际背后涉及三层映射DS UI 层 → ODBC Driver Manager 层 → MySQL Server 层。任一层编码或协议不匹配都会导致作业运行时报ORA-29275: partial multibyte characterDS 内部误判为 Oracle 错误、Invalid character string或直接 hang 在Reading metadata阶段。3.1 创建数据库连接对象DSN 名必须与系统完全一致大小写敏感打开 SAP Data Services Designer → Tools → Options → Datastores → Add → Type:ODBC→ Name:MySQL_Sales_Prod自定义但建议含业务域→ Next → 填写Data source name:DS_MySQL_Prod必须与上一步 Windows DSN 名或 Linux /etc/odbc.ini 中的 section 名一字不差包括大小写User name:ds_etl_user与 DSN 中 User 一致DS 会覆盖 DSN 密码字段Password: 输入密码DS 会加密存储在 repository 中但首次连接测试仍需明文→ Next →Critical step: 在Advanced标签页中手动填写Connection String覆盖 DSN 默认行为DRIVER{MySQL ODBC 8.0 Unicode Driver};SERVER10.20.30.40;PORT3306;DATABASEsales_db;UIDds_etl_user;PWDyour_strong_password;CHARSETutf8mb4;SSL MODEDISABLED;OPTION3;为什么不用 DSN 自动继承DS 的 ODBC 封装层对 DSN 中的SSLMode、Charset解析不稳定尤其在多环境部署时。显式写 Connection String 能 100% 控制行为且便于版本管理可存入 Git。注意SSL MODEDISABLED大写 MODE等号前后无空格是 MySQL ODBC 8.0 的标准写法SSLModedisabled小写在某些 DS 版本中会被忽略。点击 Test Connection —— 此时若失败DS 日志C:\Program Files\SAP BusinessObjects\DataServices\logs\或$DS_HOME/logs/中会输出真实 ODBC 错误例如[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified→ 表示 DSN 名拼错或未注册为系统 DSN[MySQL][ODBC 8.0(w) Driver]SSL connection error: SSL is required but the server doesnt support it→ 表示 MySQL 服务端require_secure_transportON且 DS 连接字符串未启用 SSL。3.2 字符集映射在 DS 全局设置中锁定 UTF8MB4避免中文字段元数据解析失败即使 ODBC 层用了utf8mb4DS Designer 默认用ISO-8859-1解析 MySQL 的information_schema.COLUMNS表导致中文列注释、表名显示为??进而使Auto Generate功能生成错误的字段定义如把VARCHAR(255)识别成CHAR(255)。解决方法修改 DS 全局字符集配置文件dsconfig.txt位于$DS_HOME/bin/# 在 [ODBC] section 下添加没有则新建 [ODBC] ODBC_CHARSETUTF8MB4 ODBC_CODEPAGE65001参数说明ODBC_CHARSETUTF8MB4告诉 DS 所有 ODBC 连接统一用 utf8mb4 解析 metadataODBC_CODEPAGE65001是 Windows 代码页 ID对应 UTF-8确保 Designer UI 渲染正确修改后必须重启 DS Designer 和 Job Server否则不生效。验证新建一个 MySQL 表含中文列名和注释CREATE TABLE test_chinese ( id INT PRIMARY KEY, 姓名 VARCHAR(100) COMMENT 用户真实姓名, 描述 TEXT COMMENT 业务描述信息 ) CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;在 DS Designer 中右键该表 →Auto Generate→ 查看生成的 datastore definitionColumn Name和Description应完整显示中文而非乱码或空值。4. SSL 连接实战从禁用 SSL 到双向认证绕过[08001] certificate chain was issued by an authority...报错很多企业 MySQL 已强制开启 SSLrequire_secure_transportON此时 DS 必须启用 SSL但直接勾选 DSN 的SSL Enforced或在 Connection String 写SSL MODEREQUIRED会立刻触发[08001] [Microsoft][ODBC Driver 17 for SQL Server] SSL provider: certificate chain was issued by an authority that is not trusted—— 注意这个错误日志里写的ODBC Driver 17 for SQL Server是误导实际是 Windows ODBC Manager 复用同一套 SSL 栈错误来源是 MySQL ODBC 驱动加载 CA 证书失败。4.1 单向 SSLMySQL Server 提供证书DS 验证只需 CA 证书文件前提MySQL 已配置 SSLssl_ca,ssl_cert,ssl_key已设且require_secure_transportON。步骤从 MySQL Server 获取 CA 证书文件通常是ca.pem保存到 DS 服务器任意路径如C:\DS_SSL\ca.pemWindows或/opt/ds/ssl/ca.pemLinux修改 DSN 配置WindowsODBC Data Source Administrator →DS_MySQL_Prod→ Configure → SSL 标签页SSL Mode:RequiredCA Certificate: 浏览选择C:\DS_SSL\ca.pemClient Certificate / Private Key 留空单向认证无需修改 DS 连接字符串覆盖 DSNDRIVER{MySQL ODBC 8.0 Unicode Driver};SERVER10.20.30.40;PORT3306;DATABASEsales_db;UIDds_etl_user;PWDyour_strong_password;CHARSETutf8mb4;SSL MODEREQUIRED;SSL CA CERTIFICATEC:\DS_SSL\ca.pem;OPTION3;关键点SSL CA CERTIFICATE路径必须是 DS Job Server 进程有读取权限的本地绝对路径网络路径\\server\share\ca.pem不支持。Linux 下等效配置/etc/odbc.ini[DS_MySQL_Prod] ... SSLMode required SSLCertificate /opt/ds/ssl/ca.pem测试isql -v DS_MySQL_Prod应返回Connected!DS Designer Test Connection 成功。4.2 双向 SSLDS 提供 Client CertMySQL 验证解决高安全场景审计要求当 MySQL 配置了require_secure_transportON且require_x509时必须提供 Client Certificate。生成 Client Cert在 MySQL Server 执行-- 创建专用用户并要求 X509 CREATE USER ds_etl_ssl% IDENTIFIED BY strong_pwd REQUIRE X509; GRANT SELECT, INSERT, UPDATE, DELETE ON sales_db.* TO ds_etl_ssl%; FLUSH PRIVILEGES;导出 Client Cert需 MySQL Server 有openssl# 进入 MySQL data dir如 /var/lib/mysql cd /var/lib/mysql # 生成 client-key.pem 和 client-cert.pem已存在则跳过 openssl req -newkey rsa:2048 -nodes -keyout client-key.pem -x509 -days 3650 -out client-cert.pem -subj /CNDS_ETL_CLIENT将client-key.pem和client-cert.pem复制到 DS 服务器如C:\DS_SSL\client-key.pem,C:\DS_SSL\client-cert.pem并确保文件权限为仅 DS 服务账户可读。Windows DSN 配置SSL Mode:RequiredCA Certificate:C:\DS_SSL\ca.pemClient Certificate:C:\DS_SSL\client-cert.pemPrivate Key:C:\DS_SSL\client-key.pemDS 连接字符串追加SSL CLIENT CERTIFICATEC:\DS_SSL\client-cert.pem;SSL PRIVATE KEYC:\DS_SSL\client-key.pem;避坑重点Client Key 文件必须是 PEM 格式且无密码保护MySQL ODBC 不支持加密 key。若 key 有密码用openssl rsa -in client-key.pem -out client-key-unencrypted.pem去密。5. 避坑DS 连 MySQL 的 4 个血泪现场与根因修复方案这些不是“可能遇到”而是我在 7 个 SAP 客户现场亲手踩过、重装过驱动、抓过网络包、翻过 DS 源码才确认的真问题。每一条都附带现象、根因和可立即执行的修复命令。5.1 现象DS Designer 测试连接成功但作业运行时报SQLSTATE HY000: [MySQL][ODBC 8.0(w) Driver]Field xxx doesnt have a default value且该字段在 MySQL 中明明设了DEFAULT CURRENT_TIMESTAMP根因MySQL ODBC 8.0 驱动默认将TIMESTAMP/DATETIME类型的DEFAULT行为解析为NULL而 DS 在 INSERT 语句中未显式传值触发 MySQL 严格模式报错。本质是驱动 metadata 解析缺陷非 DS 配置问题。解决在 DS 的 datastore definition 中对该字段手动设置Default Value为CURRENT_TIMESTAMP()字符串形式或在作业 SQL 中显式写INSERT INTO t(col1, col2) VALUES (?, NOW())。永久方案在 MySQL 中将字段 DEFAULT 改为DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP并确保sql_mode不含STRICT_TRANS_TABLES生产环境慎改。5.2 现象Linux 下 DS Job Server 启动失败日志报libmyodbc8w.so: cannot open shared object file: No such file or directory根因libmyodbc8w.so依赖libssl.so.1.1和libcrypto.so.1.1但 RHEL 8 默认装libssl.so.1.1在/lib64/而某些 DS 安装包会优先查/usr/lib64/。ldd /usr/lib64/libmyodbc8w.so显示libssl.so.1.1 not found。解决创建软链接需 rootsudo ln -sf /lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 sudo ln -sf /lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1验证ldd /usr/lib64/libmyodbc8w.so | grep not found输出为空。5.3 现象DS 作业读取 MySQL 表时中文字段值变成????但表结构和列名显示正常根因DS 连接字符串中CHARSETutf8mb4生效但 MySQL Server 的character_set_client、character_set_connection仍为latin1导致 insert/update 时编码转换失败。SHOW VARIABLES LIKE character_set%可见client和connection未随连接字符串变更。解决在 DS 连接字符串末尾追加INIT COMMANDSET NAMES utf8mb4;...;CHARSETutf8mb4;INIT COMMANDSET NAMES utf8mb4;该命令在每次连接建立后立即执行强制会话级字符集。5.4 现象Windows 下 DS Job Server 以服务方式启动时连接 MySQL 失败但以命令行方式dsjob -server ...成功根因Windows 服务账户如Local System无权读取系统 DSN 中的密码字段或 DSN 配置未被服务账户继承。ODBC Data Source Administrator (64-bit)中的系统 DSN 对服务进程不可见。解决放弃 DSN全程使用 Connection String。在 DS Designer 中配置连接时DSN 名随意填如dummy全部参数写在 Connection String 中含UID/PWDDS 服务进程直接调用 ODBC API不经过 DSN 查找。这是最稳定方案已在金融客户生产环境运行 3 年零故障。6. 进阶技巧用 DS 的sql()函数直连 MySQL 执行 DDL/DML绕过 datastore 定义限制SAP Data Services 的标准流程是先定义 datastore → 生成 table → 拖拽 transform。但遇到以下场景时这套流程反而添堵需动态建表如按日期分表sales_202405需执行TRUNCATE TABLE清空目标DS 的Truncate Tabletransform 不支持 MySQL需调用 MySQL 存储过程CALL proc_update_stats()需批量INSERT ... ON DUPLICATE KEY UPDATEDS 的SQL Wheretransform 不支持 UPSERT 语法。此时sql()函数是唯一出路——它允许你在 Data Flow 中直接写原生 MySQL SQL并由 DS 通过同一 ODBC 连接执行。6.1sql()函数语法与安全边界函数原型sql(connection_name, SQL_statement, [timeout_seconds])connection_nameDS Designer 中定义的数据库连接名如MySQL_Sales_ProdSQL_statement纯字符串必须是单条语句不支持;分隔多条timeout_seconds可选超时时间默认 300 秒。安全红线❌ 禁止拼接变量进 SQL 字符串sql(conn, INSERT INTO t VALUES ( $var ))→ SQL 注入✅ 必须用参数化占位符?并通过sql_param()函数传参sql(MySQL_Sales_Prod, INSERT INTO sales_log (date, status, msg) VALUES (?, ?, ?), sql_param($date, DATE), sql_param($status, STRING), sql_param($msg, STRING) )6.2 实战案例动态建分区表 写入数据完整 Data Flow 片段场景每天凌晨将昨日销售数据写入按日分区的表sales_daily_20240520。变量定义在 Data Flow Properties → Variables$partition_dateformat_datetime(sysdate()-1, yyyymmdd)→20240520$table_namesales_daily_ $partition_date→sales_daily_20240520前置 SQL建表if not exists在 Data Flow 开头加一个Scripttransform内容sql(MySQL_Sales_Prod, CREATE TABLE IF NOT EXISTS $table_name ( id BIGINT PRIMARY KEY, order_no VARCHAR(50), amount DECIMAL(10,2), create_time DATETIME ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 )主逻辑写入数据拖一个Tabletransform 读源数据 → 连接到Querytransform → 在Query的SQL Query中写INSERT INTO $table_name (id, order_no, amount, create_time) SELECT id, order_no, amount, create_time FROM SALES_SRC WHERE date $partition_date后置 SQL分析表再加一个Scripttransformsql(MySQL_Sales_Prod, ANALYZE TABLE $table_name)性能提示sql()函数执行 DDL如 CREATE TABLE会隐式提交事务若需事务控制应将 DDL 和 DML 拆到不同 Data Flow或改用 MySQL 的START TRANSACTIONCOMMIT但 DS 不保证跨sql()调用的事务一致性慎用。我坚持在所有新项目里用sql()替代Truncate Table和Insert Intotransform因为前者可控、后者黑匣子。去年有个客户因Truncate Tabletransform 在 MySQL 8.0.32 上触发 bugLost connection to MySQL server during query回滚三天才定位到是 DS 封装层的问题而sql(conn, TRUNCATE TABLE t)一行代码就解决。技术选型没有银弹只有谁踩过坑、谁敢担责。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

Remote In Tech 公司档案解析:Exoscale 的完全远程欧洲云托管实践

Remote In Tech 公司档案解析:Exoscale 的完全远程欧洲云托管实践

数据集 【免费下载链接】remote-jobs Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies 项目地址: https://gitcode.com/GitHub_Trending/re/remote-jobs 点击查看 免费下载 这篇技术指南以 exoscale.md 这…

📅 2026/10/2 8:05:20
如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南

如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南

如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downlo…

📅 2026/10/2 8:05:20
正向代理与反向代理全解:从工作原理到 Nginx 实战选型(system-design-101)

正向代理与反向代理全解:从工作原理到 Nginx 实战选型(system-design-101)

后端文档教程 【免费下载链接】system-design-101 Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. 项目地址: https://gitcode.com/GitHub_Trending/sy/system-design-101 点击查看 免费下载 本指南以 …

📅 2026/10/2 8:05:20
MORE NEWS

更多资讯

📰

小超市店主提问:AI真的懂零售吗

坐标某三线城市,社区超市店主,店开在小区门口第八年。标题这个问题我替各位店主问过了——答案是:它懂的不是零售,是您店里那点事。亲身经历,往下看。 我为什么怀疑 开店的都知道,零售这事看着简单&#xf…

📰

定投还是梭哈?给金融小白的“加密资产”配置指南(附风险测评)

扎心一问:你身边是不是总有这样的人——2021年牛市顶峰All in冲进去,结果腰斩再腰斩,到现在还在山顶吹冷风?😭说白了,加密市场最不缺的就是“一夜暴富”的故事,但更不缺的是“一把梭哈、天台排队…

📰

链上转账出错能撤回吗?这4个“不可逆”的瞬间,碰到一个就血本无归

转账地址填错一个字母,你的钱就永远没了——这不是吓唬你,这是区块链世界里每天都在发生的真实悲剧。你猜怎么着?就在上个月,有个哥们儿把 12 个比特币(价值约 80 万人民币)转错地址,结果对方账…

📰

串口与CAN总线:协议架构、通信机制与工程选型的深度比较

目录 1 引言 2 协议架构与标准定位 2.1 串口:物理层与字符级协议的松散组合 2.2 CAN:覆盖数据链路层的完整总线协议 3 物理层与电气特性比较 3.1 信号传输方式 3.2 终端匹配与传输线效应 3.3 电气特性对比 4 数据链路层与帧结构比较 4.1 帧格式…

📰

Android 13 Launcher3 Hotseat布局方向定制:从底部横排到左侧竖排

做定制ROM这些年,Launcher里的Hotseat是我改得最多、也最容易翻车的一块。Hotseat就是手机最底下那排固定应用栏,源码里叫Hotseat,圈子里习惯叫Dock。Android 13的Launcher3代码结构比老版本复杂不少,很多项目从旧版本升级过来以后…

📰

Ghostfolio 仓库 Angular 端到端(E2E)测试接入实战:框架选型、ng add 配置与运行指南

后端前端金融科技数据可视化 【免费下载链接】ghostfolio Open Source Wealth Management Software. Angular NestJS Prisma Nx TypeScript 🤍 项目地址: https://gitcode.com/GitHub_Trending/gh/ghostfolio 点击查看 免费下载 本篇技术指南围绕 e…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬