云客户?
免费开始>
在MyJFrog中升级>
云的新功能>







概述

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

要使Artifactory与MariaDB一起运行,您需要创建一个专用的MariaDB数据库实例,然后配置Artifactory以使用它,如下面的部分所述。

继续之前

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

页面内容



创建人工MariaDB数据库

支持的MariaDB版本

Artifactory支持MariaDB 10.2.9-10.4和10.5.9版本(避免使用MariaDB 10.5。10.5.9版本之外的X版本已知问题).

支持的JDBC驱动程序版本

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

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

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

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

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

createdb_mariadb。sql脚本
创建数据库字符集utf8_bin;在艺术上给予一切。*到'artifactory'@'localhost' ' IDENTIFIED BY 'password';冲洗特权;

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

Artifactory特权

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

创建数据库字符集utf8_bin;在艺术上给予一切。* TO 'artifactory'@'%' IDENTIFIED BY 'password';冲洗特权;

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

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

例如,在createdb.sql将COLLATE上面的脚本设置为"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. 中调整数据库连接详细信息人工系统YAML

    例如
    shared: database: type: mariadb driver: org.mariadb.jdbc.Driver url: jdbc:mariadb://<您的数据库服务器url,例如:localhost:3306>/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true& usessl =false&useMysqlMetadata=true用户名:人工密码:密码

在MariaDB中存储blob

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

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



已知的问题

轻量级Ping查询

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


增加MariaDB默认数据包大小

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

如欲了解更多,请参考包太大在MariaDB。

建议在文件中修改此参数/etc/my.cnf文件如下:

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

/etc/my.cnf绝对路径

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

重新启动要求

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

您也可以使用命令行

也可以更改max_allowed_packet变量,示例如下:

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前需要设置并重启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连接器/J将查询包装为标准SQL查询,并将其转换为“SET STATEMENT…”查询,就服务器而言,这在语法上是非法的。出于这个原因,当MariaDB被用作数据库类型时,Artifactory使用通用的“SELECT 1”作为池连接的验证查询。MySql连接器没有这样的限制,并且支持“/* ping */”查询。



版权所有©2023 JFrog Ltd.