首页 > 数据库 >在Docker中安装MySQL的ODBC驱动并添加Python测试代码

在Docker中安装MySQL的ODBC驱动并添加Python测试代码

时间:2024-05-21 13:30:26浏览次数:22  
标签:Python ODBC odbc echo etc ini && MySQL

# 使用官方的Ubuntu镜像作为基础镜像 FROM ubuntu:20.04
# 设置环境变量以避免交互式安装提示 ENV DEBIAN_FRONTEND=noninteractive
# 更新包列表并安装必要的软件包 RUN apt-get update && \     apt-get install -y \     build-essential \     curl \     apt-transport-https \     unixodbc \     unixodbc-dev \     odbcinst \     gnupg2 \     wget \     python3 \     python3-pip && \     apt-get clean && \     rm -rf /var/lib/apt/lists/*
# 下载并安装MySQL ODBC驱动的deb包 # 8.0.21 适合Ubuntu 20.04 RUN wget https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc_8.0.21-1ubuntu20.04_amd64.deb && \     dpkg -i mysql-connector-odbc_8.0.21-1ubuntu20.04_amd64.deb && \     apt-get install -f -y && \     rm mysql-connector-odbc_8.0.21-1ubuntu20.04_amd64.deb
# 配置 ODBC 驱动 RUN echo "[MySQL ODBC 8.0 Unicode Driver]" > /etc/odbcinst.ini && \     echo "Description = MySQL ODBC 8.0 Unicode Driver" >> /etc/odbcinst.ini && \     echo "Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so" >> /etc/odbcinst.ini && \     echo "[MySQL ODBC 8.0 ANSI Driver]" >> /etc/odbcinst.ini && \     echo "Description = MySQL ODBC 8.0 ANSI Driver" >> /etc/odbcinst.ini && \     echo "Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so" >> /etc/odbcinst.ini
# 配置 ODBC 数据源 RUN echo "[MySQLDataSource]" > /etc/odbc.ini && \     echo "Driver = MySQL ODBC 8.0 Unicode Driver" >> /etc/odbc.ini && \     echo "Server = localhost" >> /etc/odbc.ini && \     echo "Port = 3306" >> /etc/odbc.ini && \     echo "Database = testdb" >> /etc/odbc.ini && \     echo "User = root" >> /etc/odbc.ini && \     echo "Password = YOUR_PASSWORD" >> /etc/odbc.ini
# # 安装 MySQL 5.7 # RUN apt-get update && \ #     apt-get install -y mysql-server-5.7 && \ #     apt-get clean && \ #     rm -rf /var/lib/apt/lists/*
# # 启动 MySQL 服务并设置 root 用户密码 # RUN service mysql start && \ #     mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';" && \ #     mysql -u root -p'your_password' -e "CREATE DATABASE testdb;"
# 设置默认命令 #CMD ["bash"]
# 安装 pyodbc 用于测试连接 RUN pip3 install pyodbc
# 添加测试脚本 COPY test_odbc.py /test_odbc.py
# 设置默认命令 CMD ["python3", "/test_odbc.py"]  


Python测试脚本:   import pyodbc
# 配置数据库连接 dsn = 'MySQLDataSource' user = 'root' password = 'YOUR_PASSWORD' database = 'testdb'
# 创建连接字符串 conn_str = f'DSN={dsn};UID={user};PWD={password};DATABASE={database}'
# 尝试连接到数据库 try:     conn = pyodbc.connect(conn_str)     print("Connected to the database successfully!")     conn.close() except Exception as e:     print(f"Failed to connect to the database: {e}")

标签:Python,ODBC,odbc,echo,etc,ini,&&,MySQL
From: https://www.cnblogs.com/pccai/p/18203794

相关文章

  • 在Docker中安装PostgreSQL的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\  apt-getinstall-y\  build-essential\  unixodbc\  unixo......
  • C#如何用最简单方法调用Python?
    最近有群友咨询C#如何调用Python?小编尝试Python.NET过程中遭遇的版本兼容性和环境配置难题,小编决定寻找一个更为简单、稳定且对初学者友好的解决方案。小编搜索一番,除了Python.NET之外,还有其他途径能够帮助我们轻松地在C#项目调用Python脚本,那就是通过命令行调用,使用System.Diagn......
  • 创建你的-Mysql-数据库-全-
    创建你的Mysql数据库(全)原文:zh.annas-archive.org/md5/853FEC9D976A75004408D5A9A661EDD8译者:飞龙协议:CCBY-NC-SA4.0前言1995年发布的MySQL已成为最受欢迎的开源数据库系统。MySQL和phpMyAdmin的普及使得许多非IT专家能够使用MySQL后端构建动态网站。本书是一......
  • 二进制安装mysql5.7
    1.创建目录mkdir-p/server/toolsmkdir/applicationmkdir/mysql-data/mysql/data-p2.建用户与环境变量useradd-s/sbin/nologinmysqlecho"exportPATH=/application/mysql/bin:$PATH">>/etc/profilesource/etc/profile3.下载与解压文件cd/server/tools/wg......
  • Python之快排算法
    快排算法的思路:从list中取出下标为0的值定义三个list进行循环,大于list[0]放入一个A,小于的放入B,其他的放入C拼接:A+C+B代码实现:list=[13,8,11,17,5,6,1,1,1]defQuickSort(list):iflen(list)<=1:#判断如果小于等于1,则无需排序,直接返回即可......
  • MySQL 字段截取拼接
    @目录前言需求:拼接函数:截取函数:总结前言请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、提示:以下是本篇文章正文内容,下面案例可供参考需求:将数据库中的某一个字段的前6位替换成一个新的字符串,其它位置不变。拼接函数:CONCAT(A,B):将A和B拼接起来。截取函数:LEFT(s......
  • mysql允许其它机器连接
    1.修改MySQL的配置文件(windows是my.ini,linux是my.cn.cnf或my.cnf),如果有bind-address这一行,值改为0.0.0.0,这样可以允许任意IP地址连接到MySQL服务器。bind-address=0.0.0.0没有bind-address,就补上bind-address=0.0.0.0这一行2.修改权限grantallprivilegeson*.*to'r......
  • Python/Go 面试题目整理
    目录一、Python基础知识1.1可变与不可变数据类型1.8深浅拷贝1.2PEP8编程规范1.3匿名函数1.4装饰器1.5迭代器1.6生成器1.7面向对象编程思想1.7.1Python中的__new__和__init__的区别1.7.2反射1.7.3面向对象1.7.4鸭子类型1.7.5你对Python的继承怎么看?1.9GC机制1.10......
  • 蟒蛇书(Python编程:从入门到实践)第17章使用API 17.1.4处理API响应报错Caused by ProxyEr
    书上提供的原始代码:importrequests#执行API调用并存储响应url='https://api.github.com/search/repositories?q=language:python&sort=stars'headers={'Accept':'application/vnd.github.v3+json'}r=requests.get(url,headers=headers)prin......
  • 阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
    主要实现思路1、在clickhouse中创建MySQL引擎表。2、根据MySQL引擎表的信息创建目标表。3、实现canal实时增量同步MySQL数据到clickhouse。MySQL的准备修改配置文件开启Binlog[root@hadoop100module]$sudovim/etc/my.cnfserver-id=1log-bin=mysql-binbinlog_form......