7
6月
2023
如何将 LibreOffice Base 与 MySQL 连接
15:45

如何将 LibreOffice Base 与 MySQL 连接

7 6月 2023 15:45

在本文中,我讨论了如何将信息从MySQL传输到Linux到Libreoffice基础。

前言

Libreoffice软件包包含在许多(如果不是全部Linux发行版)的交付集中。 另外,它可以从存储库中安装,以DEB或RPM文件的形式下载

介绍

在工作中,大约每月一次,我用MySQL数据库对Excel源文件进行了对帐。 MySQL已与Libreoffice基础和ODBC连接器实施了通信。

Libreoffice基础是MS访问程序的类似物。
该数据库记录在Linux操作系统中,该名称可从Libreoffice Calc,Writer和Libreoffice Basic程序中获得。

在MySQL和Libreoffice基础之间,我使用了\ ODBC连接器。 后来,可以通过JDBC使用连接。

程序连接方案

Shema

dbms mysql <-> mySQL连接器odbc/jdbc <-> libreoffice base <-> libreoffice计算

0。安装mysql和libreoffice

MySQL安装在上一个 有关MySQL的文章
如何在Linux中安装Libreoffice软件包 - 请参阅 文章Wiki

1。数据库

众所周知,数据库旨在存储信息。 通常,它们是一组互连表(关系数据库)。 在一个简单的数据库中,其中一个表必然是主要数据库(例如,仓库中的运营或商品杂志) - 其余的只是参考书。 就我而言,使用了一个主表“优惠”,我从中使用请求进行了选择。

出于测试目的,我将在一个示例中显示,而不是在真实数据库上。 例如,简化了字段的组成。

提供

  • ID-整数(唯一的密钥字段)
    名称 - 名称
    说明 - 描述
    价格 - 价格
    显示 - 符号(0或-1-不显示(隐藏的条目 /出售),1或2-显示(出售 /促销)
创建数据库引物; 使用底漆; 如果存在掉落表 `offers`; 创建表 `offers` ( `offer_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, `description` varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL, `price` int(11) DEFAULT NULL, `display` int(11) DEFAULT '1', PRIMARY KEY (`offer_id` ) )引擎= innodb auto_increment = 546默认charset = utf8 colate = utf8_unicode_ci; INSERT INTO `offers` VALUES (1,'AAAA', '', 10000, 1),(2,'BBBB', '', 80, 1),(3,'CCCCC', '', 555, 0),(4,'DD', '', 7, 1); 文件dampa bd `primer` для MYSQL: [primer.sql.zip](primer.sql.zip) 要创建数据库,我们代表数据库用户执行此脚本 `root` : `mysql -u root -p` `source primer.sql` ### 2。连接到mySQL的方法 页面上列出了所有连接到MySQL的软件方法 [https://www.mysql.com/products/connector/](https://www.mysql.com/products/connector/) - есть фирменные драйверы ADO.NET, JDBC, ODBC, Python и разработанные сообществом PHP Drivers for MySQL и др. 我检查了连接到MySQL -ODBC或JDBC的方法。 优势是由ODBC给出的,因为我已经使用了很长时间了。 但是您可以以任何方式安装: * MySQL的ODBC连接器 - 请参阅第2.1段 * MySQL的JDBC连接器 - 请参阅第2.2段 #### 2.1 MySQL的连接器ODBC安装 我们发现OS版本的数量: lsb_release -a 为您的Ubuntu或Debian版本下载连接器ODBC分发。 为此,请转到下一页: [https://dev.mysql.com/downloads/connector/odbc/](https://dev.mysql.com/downloads/connector/odbc/) 我们下载为操作系统下载MySQL的ODBC连接器的分发: 如果Linux Mint分发,请找出代码库(包装基库),您可以找出答案 [要求](https://duckduckgo.com/?q=linux+mint+vera+package+base+ubuntu+lts+version&t=lm&atb=v297-1&ia=web) в поисковике. 例如,对于Lixux Mint 21.1-代码库Ubuntu为22.04。 也就是说,对于Linux Mint 21.x,您需要加载 ** Ubuntu Linux 22.04(X86,64位),DEB软件包** (MySQL-Connector-ODBC_8.2.0-2.0-2.0-ubuntu22.04_amd64.deb),而无需辩论1.9 MB的字符。 在下一页上,单击“不,谢谢,开始下载”。 用依赖关系(3 pcs。)双击鼠标,安装ODBC-Connector(DEB文件)的加载软件包。 从终端运行可执行文件 `myodbc-installer` - он выведет справку по использованию коннектора из командной строки: myodbc-installer 他将在该计划下显示证书:
 [error]未给出的参数
+----
 myodbc-installer v8.02.0000                                 
+----

 Description                                                          

    This program is for managing MySQL Connector/ODBC configuration   
    options at the command prompt. It can be used to register or      
    unregister an ODBC driver, and to create, edit, or remove DSN.    

    The program has been designed to work across all platforms        
    supported by Connector/ODBC, including MS Windows and             
    various Unix-like systems.                                        

    The program requires that unixODBC version 2.2.14 or newer        
    has already been installed on the system.                         
    UnixODBC can be downloaded from here:                             
    http://www.unixodbc.org/                                          

 Syntax                                                               

    myodbc-installer   [Options]                      

 Object                                                               

     -d driver                                                        
     -s datasource                                                    

 Action                                                               

     -l list                                                          
     -a add (add/update for data source)                              
     -r remove                                                        
     -h display this help page and exit                               

 Options                                                              

     -n                                                         
     -t                                             
        if used for handling data source names the  
        can contain ODBC options for establishing connections to MySQL
        Server. The full list of ODBC options can be obtained from    
        http://dev.mysql.com/doc/connector-odbc/en/                   
     -c0 add as both a user and a system data source                  
     -c1 add as a user data source                                    
     -c2 add as a system data source (default)                        

 Examples                                                             

    List drivers                                                      
    shell> myodbc-installer -d -l                                     

    Register a Unicode driver (UNIX example)                          
    shell> myodbc-installer -d -a -n "MySQL ODBC 8.2 Unicode Driver" \ 
              -t "DRIVER=/path/to/driver/libmyodbc8w.so;SETUP=/path/to/gui/myodbc8S.so" 

      Note                                                            
         * The /path/to/driver is /usr/lib for 32-bit systems and     
           some 64-bit systems, and /usr/lib64 for most 64-bit systems

         * driver_name is libmyodbc8a.so for the ANSI version and     
           libmyodbc8w.so for the Unicode version of MySQL ODBC Driver

         * The SETUP parameter is optional; it provides location of   
           the GUI module (libmyodbc8S.so) for DSN setup, which       
           is not supported on Solaris and Mac OSX systems            

    Add a new system data source name for Unicode driver              
    shell> myodbc-installer -s -a -c2 -n "test" \                  
              -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=test;UID=myid;PWD=mypwd" 

    List data source name attributes for 'test'                       
    shell> myodbc-installer -s -l -c2 -n "test"                     
+----
 pre>

呢请注意,ODBC -Connector 8.0.2的版本对应于MySQL Server -8.0.35的版本。

 **我们的任务是创建数据DSN的来源! ** 

!! ODBC的DSN设置存储在配置 **/etc/odbc.ini ** 的文本文件中

首先,我们将检查已安装的ODBC驱动程序:

    myodbc-installer -d -l

结果:
_mysql_
_mysql ODBC 8.2 Unicode驱动程序_
_MYSQL ODBC 8.2 ANSI驱动程序_

添加一个新的DSN系统ODBC数据源,并带有名称“ primer”,
连接到MySQL数据库“底漆”( **使用sudo!** 执行)。
我们注意密钥-T:中传输的连接参数:

 **简短团队**  - 之后,您需要编辑/etc/odbc.ini:

    sudo myodbc-installer -s -a -c2 -n "primer" -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=primer;Socket=/var/run/mysqld/mysqld.sock" 

 **完整命令** (建议使用[/mark]) - 在它编辑文件 **/etc/odbc.ini ** 之后。

     sudo myodbc-installer -s -a -c2 -n "primer" -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=primer;UID=root;PWD=11111;Port=3306;Socket=/var/run/mysqld/mysqld.sock" 

呢如果您需要删除错误的数据源,请命令:sudo /myodbc -inchstaller -s -r -n primer_err

其中-C2是指系统的数据源(而不是用户)。 数据库=引物 -  MySQL中的数据库名称

检查数据源的创建(列表输出)

    myodbc-installer -s -l

结果:
_primer -mySQL ODBC 8.2 Unicode驱动程序_

ODBC连接器中的数据源 **成功** 创建。 现在,ODBC数据源可在此PC的此操作系统的框架内可用。

#### 编辑/etc/odbc.ini

如果未设置套接字=/var/run/mysqld.sock参数,则连接到数据库连接器时会发出错误
 `[MySQL][ODBC 5.3(a) Driver]Can't connect to local`   
 `MySQL server through socket '/tmp`   
 `mysql.sock' (2) ./connectivity/source/drivers/odbc/`   
 `OTools.cxx:357`   

通过向其添加丢失的行来更正odbc.ini。
 **源“底漆”的正确DSN文件的示例:** 

_odbc.ini没有密码不包含

 [底漆]
驱动程序= mysql ODBC 8.2 Unicode驱动程序
数据库= Realty
no_schema = 1
端口= 3306
PWD = 55555
服务器= Localhost
套接字=/var/run/mysqld/mysqld.sock
uid = root 

odbc.ini带有打开式的密码

[底漆]
驱动程序= mysql ODBC 8.2 Unicode驱动程序
数据库= Realty
no_schema = 1
端口= 3306
PWD = 55555
服务器= Localhost
套接字=/var/run/mysqld/mysqld.sock
uid = root
PWD = 11111

两种选项之间的区别,因为不难猜测 - 使用密码在选择数据库中的数据时不需要输入用户名和密码(略微降低安全性)。

呢字符串套接字的存在=/var/run/mysqld/mysqld.sock v/etc/odbc.ini是必须的!

2.2 MySQL的安装JDBC连接器

1)您需要从连接器/J页面下载JDBC连接器的分布
以DEB或RPM文件的形式(取决于OS),用于其Linux分布:

加载页面连接器/J:
https://dev.mysql.com/downloads/connector/j/

2)安装DEB或RPM文件。

3.创建数据库Libreoffice基础及其与MySQL的连接

在任何Libreoffice程序中,调用菜单项

  • Файл - Создать - База данных

在第一步中 “欢迎来到数据库主libreoffice” select “与现有数据库连接” - mysql **
步骤1-与现有的MySQL数据库连接

3.1选项:使用ODBC连接器

在第二步中,选择 - 使用连接器ODBC “通过ODBC(打开数据库连接)连接” :
步骤2 -ODBC

在下一个主人的第三步中,输入名称或使用“评论...”按钮,名称DSN,以前设置为连接器ODBC
步骤3 -ODBC选择数据源

На предпоследнем, четвертом шаге выполняем тестирование. Если имя пользователя и пароль сохранены в /etc/odbc.ini, вводить их не нужно.
步骤4-ODBC检验

如果正确配置了/etc/odbc.ini,则不会出现错误。 否则,请编辑odbc.ini文件并再次执行测试。

单击**“准备就绪!”向导底部的按钮,然后将数据库保存到用户本地文件夹中的ODF数据库文件中。

带有MySQL外部表的数据库将打开。 可以打开表并观看数据:
打开

!!!!创建了Libreoffice Base Libreofce并有效。

3.2使用JDBC连接libreoffice基础与mysql

MySQL的JAR类安装在/usr/share/java文件夹中/带有名称mysql-connector-java-8.0.0.33.jar

我们转到libreoffice calc -service -parameters -libreoffice-添加功能的扩大功能添加到java.sql.sql.driver类:“类的方式”按钮 - 在地址中打开计算机root - 指示path/usr/share/share/share/java/java/java/mysql-connector-connector-java-java-java-java-java-8.8.0.0.0.0.33.jar jar

呢在(工具 - 选项-libreoffice-高级)。 Glachka “使用Java虚拟机” 应打开。

在Libreoffice Base中创建通过JDBC连接的数据库

文件 - 创建 - 数据库
步骤1对于ODBC和JDBC是相同的 - “与现有的MySQL数据库连接
步骤1-与现有的MySQL数据库连接

在第2步中,选择JDBC:
步骤2 -Java数据库连接

在步骤3中,您需要指定参数:数据库,服务器和端口mysql的名称:

*底漆

  • local主机
  • 3306

在“类”字段中,我们更正org.mariadb.jdbc.driver on com.mysql.cj.jdbc.driver

呢注意:类 java.sql.driver 在某些手册中指示,使用“ com.mysql.cj.jdbc.driver”的名称

单击“类测试” - 驱动程序已成功加载。
JDBC3

在步骤4,指示用户名,您需要一个密码,然后单击“测试连接”
JDBC-USPEH

将Libreoffice数据库维护到硬盘驱动器文件。

如果“ java.sql.driver class”类无法上传。/connectivity/drivers/jdbc/jconnection.cxx:685“
或者 “ com.mysql.jdbc.driver'不能)
解决方案: 将Java 更改为私人构建1.8,重新启动libreoffice:
私人的
如上所述,步骤3中类的名称应为com.mysql.cj.jdbc.driver
以及服务参数 - libreoffice-Advance添加到java.sql.sql.driver的方式:MySQL-Connector-8.0.0.0.0.0.0.0.0.0.0.0.33.jar或MySQL-Connector-j-8.8.0.0.0.0.0.0.0.33.jar必须是/usr/share/share/share/share/mjava/mjava/mjjl-clar or n.ly.larrar Orrar Orrar Orrar Orrar Oriver的途径。 mysql-connector-j-8.0.33.jar

注意:Java类以JAR格式安装在Rector Deb文件启动时,但也可以从页面下载 https://dev.mysql.com/downloads/connector/j/ - Platform independent - архив tat.gz в нём mysql-connector-j-8.0.33.jar 首先,我们毫无疑问地将其删除到主文件夹 ,然后将jar移入/usr/share/java/。

JDBC的结果

结果与ODBC版本不同 - 所有数据库都是可见的,包括全身数据(因为与用户根的连接)。 与通过ODBC连接相比,我认为忽略数据库名称是JDBC连接器的缺点。

JDBC-Result

通过JDBC的MySQL表也可以在Libreoffice基础上打开,以查看或编辑。
JDBC。 不要忘记将libreoffice基数数据库保存到*。 ODB文件。

结论

本文讨论了从 libreoffice base 连接到数据库 mysql - odbc jdbc 的两种方法。 两种方法都是工人。

下一篇文章

*如何从libreoffice计算到MySQL数据库的请求?



相关出版物