在Docker中安裝MySQL的ODBC驅動並添加Python測試代碼

# 使用官方的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}")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章