docker freeswitch mysql驱动相关

本文讲述了在Docker环境下,使用Freeswitch连接CentOS7.9的MySQL8.0数据库时遇到的问题,涉及ODBC版本升级、rpm包安装、isql测试以及核心dump的处理,最终通过修改语言环境LANG=en_US.UTF-8解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. docker环境 的freeswitch要连mysql数据库

2. centos版本:7.9

3. mysql版本:mysql8.0

4. odbc版本:适用以下命令查询

rpm -qa | grep -E "unixODBC|mysql-connector-odbc"

mysql-connector-odbc-5.2.5-8.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64
mysql-connector-odbc-8.0.24-1.el7.x86_64

连mysql8.0需要mysql-connector-odbc-8。下载对应的rpm包,安装,解决。

5. 可以使用isql -v dbname测试连接6. 后面还出现了core dump的问题,堆栈如下:
 

#0 0x00007fc4c18cddec in freelocale () from /lib64/libc.so.6

#1 0x00007fc4c0b45fa0 in myodbc_init() () from /usr/lib64/libmyodbc8w.so

后面通过修改docker的语言环境修复了。它的语言环境应该为:LANG=en_US.UTF-8

可以通过命令:printenv查看系统的语言

参考:Centos下unixODBC连接数据库 -(七)MySQL8.0.2 - 简书

MySQL :: Download MySQL Connector/ODBC (Archived Versions)

在使用 DolphinScheduler 的 Docker 部署时,若需要配置 MySQL 数据库并解决驱动问题,需确保容器能够正确加载 MySQL JDBC 驱动。DolphinScheduler 默认使用 H2 数据库作为嵌入式数据库,但在生产环境中通常会切换为 MySQL 或 PostgreSQL 等持久化更强的数据库系统。 ### 1. 准备 MySQL 数据库 首先确保 MySQL 数据库已安装,并为 DolphinScheduler 创建专用数据库和用户权限: ```sql CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` 此步骤可确保 DolphinScheduler 能够访问指定数据库[^2]。 ### 2. 下载 MySQL JDBC 驱动 从 [MySQL 官网](https://dev.mysql.com/downloads/connector/j/) 下载适用于当前 MySQL 版本的 JDBC 驱动(如 `mysql-connector-java-8.0.x.jar`)。 ### 3. 挂载驱动至 DolphinScheduler Docker 容器 由于 DolphinScheduler 的镜像中不包含 MySQL 驱动,需通过卷映射将驱动挂载到容器内部的 lib 目录下。例如: ```bash docker run --name dolphinscheduler-standalone-server \ -p 12345:12345 \ -p 25333:25333 \ -v /path/to/mysql-connector-java-8.0.x.jar:/opt/dolphinscheduler/lib/mysql-connector-java.jar \ -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}" ``` 这样容器启动时即可加载外部提供的 JDBC 驱动。 ### 4. 修改数据源配置 进入容器或修改配置文件以调整数据源设置。对于 standalone 模式,通常需要编辑 `application.yml` 文件中的 datasource 配置部分: ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://<mysql-host>:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC username: dolphinscheduler password: your_password ``` 请根据实际数据库地址、端口、用户名和密码进行相应替换。 ### 5. 重启容器验证连接 完成上述配置后,重启 DolphinScheduler 容器以应用更改。随后可通过日志检查是否成功连接数据库: ```bash docker logs dolphinscheduler-standalone-server ``` 如果看到类似以下信息,则表示数据库连接成功: ``` Started Application in X seconds (JVM running for Y) ``` 否则,请检查日志中是否有如下错误: - `ClassNotFoundException`: 表示未找到 MySQL 驱动类,需确认驱动是否正确挂载。 - `Connection refused`: 表示无法连接到 MySQL 服务器,需检查网络配置及数据库服务状态。 ### 常见问题排查建议 - **驱动版本兼容性**:确保使用的 MySQL JDBC 驱动版本与 MySQL 服务器版本兼容。 - **字符集配置**:数据库和表应使用 `utf8mb4` 字符集以支持中文及特殊字符。 - **容器内路径一致性**:确认挂载路径与容器内的依赖加载路径一致,避免因路径错误导致驱动加载失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值