JFrog帮助中心

我们的新传送门很快就要来了!
文档+知识库







概述

Artifactory支持MySQL流行的MariaDB分支。通过使用MariaDB,您可以受益于MariaDB基础设施中的特性,例如备份和恢复。

为了让Artifactory与MariaDB一起运行,您需要创建一个专用的MariaDB数据库实例,然后按照以下部分的描述配置Artifactory以使用它。

继续之前

在继续以下步骤之前,请确保您已阅读并遵循中描述的步骤配置数据库

页面内容



创建Artifactory MariaDB数据库

支持的MariaDB版本

Artifactory支持MariaDB 10.2.9-10.4版本和10.5.9版本(不要使用MariaDB 10.5。X版本,而不是10.5.9版本已知问题).

支持的JDBC驱动程序版本

Artifactory支持MariaDB Java Connector 2.1.2及以上版本。

注意,在使用JDBC 2.4版时。x和以上,您需要在连接字符串中添加以下标志:useMysqlMetadata=true。

Artifactory提供了一个脚本,该脚本将执行创建MariaDB数据库所需的SQL命令。

该脚本可以在美元JFROG_HOME / artifactory / app / misc / db / createdb / createdb_mariadb.sql,如下所示。

您应该检查脚本并根据需要对其进行修改,以适应您的特定环境。

createdb_mariadb。sql脚本
创建数据库artdb字符集utf8;授予所有在artdb。* 'artifactory'@'localhost' IDENTIFIED BY 'password';冲洗特权;

一旦您验证了脚本是正确的,您就需要运行它来创建数据库并继续配置数据库。

Artifactory特权

如果你在Docker容器上运行MariaDB数据库,请使用以下命令:

创建数据库artdb字符集utf8;授予所有在artdb。*到'artifactory'@'%'由'密码'识别;冲洗特权;

选择区分大小写的排序规则

虽然MariaDB Database Server默认情况下不区分大小写,但选择区分大小写的排序规则很重要,因为Artifactory是区分大小写的。

例如,在createdb.sqlCOLLATE上面的脚本设置为"utf8_bin”

Artifactory特权

我们建议为Artifactory提供数据库上的全部特权。


配置Artifactory以使用MariaDB

  1. 下载MariaDB JDBC驱动程序(可从MariaDB网站),并复制mariadb-java-client——<版本> . jar文件到$ JFROG_HOME / artifactory / var /引导/ artifactory / tomcat / lib目录

    权限

    中的其他文件具有相同的权限,请确保您的驱动程序具有相同的权限美元JFROG_HOME / artifactory / var目录中。

  2. 中调整数据库连接详细信息Artifactory系统YAML

    例如
    shared: database: type: mariadb driver: org.mariadb.jdbc.Driver url: jdbc:mariadb://<您的db服务器url,例如:localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true& usessl =false&useMysqlMetadata=true username: artifactory password:密码

在MariaDB中存储blob

建议的(和推荐的)配置将所有工件信息存储在MariaDB中,而工件二进制数据存储在文件系统(下面)中$ JFROG_HOME / artifactory / var /数据/ artifactory / filestore).
当它是不推荐,在MariaDB中存储BLOB是可能的,前提是典型的BLOB大小相对较小。在MariaDB中存储大的blob可能会导致内存问题,因为MariaDB缓冲blob而不是流它们(请参阅MySQL Bug #15089),并可能导致OutOfMemory根据您的JVM堆大小,产生较大二进制文件的错误。

要在MariaDB中存储blob,需要使用Full-DB和Full-DB- direct二进制提供程序和改变max_allowed_packet要高于您打算在Artifactory中存储的最大工件大小。



已知的问题

轻量级Ping查询

MariaDB Connector/J不支持该特殊轻量级的“/* ping */”查询JDBC连接池使用SQL验证查询对池中的连接执行常规有效性检查。


增加MariaDB默认报文大小

由于一些数据文件(构建、配置等)存储在MariaDB中,因此增加MariaDB所允许的最大数据包大小以避免与大数据包相关的错误是非常重要的。

要了解更多,请参考数据包太大在MariaDB。

方法中修改此参数/etc/my.cnf文件如下:

修改/etc/my.cnf
# MariaDB服务器[MariaDBd]。服务器可以处理的二进制负载的最大大小max_allowed_packet=8M。

/etc/my.cnf绝对路径

如果/etc/my.cnf不存在,需要在绝对路径下创建,而不是在绝对路径下美元JFROG_HOME / artifactory / var

重新启动要求

修改最大允许的打包大小后,需要重新启动MariaDB。

您也可以使用命令行

您还可以更改max_allowed_packet在MariaDB命令行中输入变量,示例如下:

SET GLOBAL max_allowed_packet = 134217728;

但是请注意,在重新启动时,的值max_allowed_packet变量将从/etc/my.cnf文件并恢复到上面描述的该文件中的值。



为Artifactory调优MariaDB

当与MariaDB一起使用Artifactory时,建议使用带有以下调优参数的InnoDB引擎/etc/my.cnf文件:

MySQL参数调优
# MariaDB服务器[mysqld]默认情况下,innodb引擎为所有数据库和表使用一个文件。我们建议将其更改为每个表一个文件。#注意:只有在Artifactory表尚未创建时才会生效!第一次启动Artifactory前需要设置并重新启动MariaDB。innodb_file_per_table #这些是调优参数,可以设置来控制和增加内存缓冲区的大小。innodb_buffer_pool_size=1536M tmp_table_size=512M max_heap_table_size=512M #这些参数控制着innodb日志文件的大小,只有在MariaDB关闭时才能更改,如果datadir中还有一些innodb日志文件,MariaDB将不会启动。因此,更改这些文件意味着在启动之前删除旧的innodb日志文件。innodb_log_buffer_size=4M。

注意,XtraDB和InnoDB引擎都兼容各种InnoDB系统变量。

重新启动要求

调优MariaDB以与Artifactory一起工作后,需要重新启动MariaDB。

MySql和MariaDB服务器都支持“/* ping */”查询,但是MariaDB Connector/J将查询包装成标准SQL查询,并将其转换为“SET STATEMENT…”查询,就服务器而言,这在语法方面是非法的。因此,当MariaDB用作数据库类型时,Artifactory使用通用的“SELECT 1”作为池连接的验证查询。MySql连接器没有这样的限制,并且支持“/* ping */”查询。



版权所有©2023 JFrog Ltd。