今天在做一个Qt视频播放器的小项目然后想要在ubuntu18.04运行这个项目,需要在Qt中连接远程的MySQL数据库,所以用到了ODBC。我在连接时遇到了一些问题,加之网上的教程各说纷纭,所以我花了很多时间去解决,所以决定做做笔记记录下来。
步骤一、安装unixODBC
这里需要注意版本的选择,我就因为版本的原因卡卡了很久(我之前下载的是最新版的)
sudo wget ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz
tar -xvzf unixODBC-2.3.4.tar.gz
cd unixODBC-2.3.4/
sudo ./configure --sysconfdir=/etc
make
sudo make install
检验是否安装成功
odbcinst -j
成功如下:
这里大概率会报错:
odbcinst: error while loading shared libraries: libodbcinst.so.2: cannot open shared object file: No such file or directory
然后百度发现解决办法是:
sudo ldconfig
步骤二、安装mysql odbc驱动
驱动下载地址:
MySQL :: Download Connector/ODBC
解压,拷贝bin及lib 目录到 /usr/local 下。
sudo tar zxvf mysql-connector-odbc-8.0.15-linux-ubuntu18.04-x86-64bit.tar.gz
cd mysql-connector-odbc-8.0.15-linux-ubuntu18.04-x86-64bit/
sudo cp bin/* /usr/local/bin
sudo cp lib/* /usr/local/lib
安装MySQL 8.0 ODBC Driver 驱动程序
// Registers the Unicode driver:
sudo myodbc-installer -a -d -n "MySQL ODBC 8.0 Driver" -t "Driver=/usr/local/lib/libmyodbc8w.so"
// Registers the ANSI driver
sudo myodbc-installer -a -d -n "MySQL ODBC 8.0" -t "Driver=/usr/local/lib/libmyodbc8a.so"
其中,-n
指定驱动程序的名称为"MySQL ODBC 8.0 Driver",-t
指定驱动程序的路径为"/usr/local/lib/libmyodbc8w.so"。
验证是否安装成功
myodbc-installer -d -l
看到列表里有
MySQL ODBC 8.0 Driver
MySQL ODBC 8.0
即代表安装成功。
步骤三、设置ODBC 参数
sudo vi /etc/odbc.ini
将下面的内容添加进去:
[mysql]
Description = Data source MySQL
Driver = MySQL ODBC 8.0 Driver
Server = 你远程IP地址
Host = 你远程IP地址
Database = 要连接这个数据库服务中的那个数据库
Port = 3306
User = root
Password = 该数据库的密码
isql mysql
成功进入数据库。