Linux -安装MySQL ODBC驱动程序-错误



我正在尝试安装MySQL ODBC驱动程序能够连接到远程MySQLserver frompython:3.9.5-slim-busterdocker.

不幸的是,我不知道该怎么办。我只是想安装MySQL ODBC驱动程序,所以我可以使用DRIVER={MySQL ODBC 8.0 Driver}连接
  1. 下载https://dev.mysql.com/downloads/connector/odbc/
  2. 下面这个https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation-binary-unix-tarball.html

我已经把这个添加到我的Dockerfile:

FROM python:3.9.5-slim-buster
WORKDIR /app

# build variables.
ENV DEBIAN_FRONTEND noninteractive
# install Microsoft SQL Server requirements.
ENV ACCEPT_EULA=Y
RUN apt-get update -y && apt-get update 
&& apt-get install -y --no-install-recommends curl gcc g++ gnupg unixodbc-dev
# MYSQL
ADD https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit.tar.gz .
RUN tar -C . -xzvf mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit.tar.gz
RUN cp mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/bin/* /usr/local/bin
RUN cp mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/* /usr/local/lib
RUN myodbc-installer -a -d -n "MySQL ODBC 8.0 Driver" -t "Driver=/usr/local/lib/libmyodbc8w.so"

这是错误:

Step 9/14 : RUN cp mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/* /usr/local/lib
---> Running in 090acd838faa
cp: -r not specified; omitting directory 'mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/plugin'
cp: -r not specified; omitting directory 'mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/private'
The command '/bin/sh -c cp mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/* /usr/local/lib' returned a non-zero code: 1

你知道该怎么办吗?

如果您查看lib文件夹,您将看到下一个:

cake@cake:~/tt/mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib$ ls -alh
total 53M
drwxr-xr-x 4 cake cake 4.0K 6月  27 21:52 .
drwxr-xr-x 5 cake cake 4.0K 7月  31 12:59 ..
-rwxr-xr-x 1 cake cake  27M 6月  27 21:52 libmyodbc8a.so
-rwxr-xr-x 1 cake cake  27M 6月  27 21:52 libmyodbc8w.so
drwxr-xr-x 2 cake cake 4.0K 6月  27 21:52 plugin
drwxr-xr-x 3 cake cake 4.0K 6月  27 21:52 private

文件夹plugin&lib中的private。检查cp的使用情况,您可以看到下面:

-R, -r, --recursive
copy directories recursively

这意味着当你用文件夹复制东西时,你必须添加-r。因此,对于您的场景,您需要更改到next以使您工作:

RUN cp -r mysql-connector-odbc-8.0.26-linux-glibc2.12-x86-64bit/lib/* /usr/local/lib

最新更新