0

我正在尝试运行以下命令:

/opt/jasperstarter/bin/jasperstarter pr --db-url jdbc:mysql://apps:@192.168.0.232:3306/zinc?useSSL=false \
                                        -f pdf \
                                        -p Y5Ni%234MAC5nosAyEv6B7dEQE%21iMoC%40 \
                                        -o /vagrant/ASB5ff7844ac8ae7 /vagrant/project/templates/pdf/jasper/erp-invoice-workorders.jasper \
                                        -P ID_ORGANIZATION=632 ID_INVOICE=92214 JASPER_DIR='/vagrant/project/templates/pdf/jasper'

它没有出错 - 它正在生成 PDF,但值都是 NULL,因此它显然没有连接到数据库。

--db-url以下是产生错误的原始开关(无):

-t mysql \
-u apps \
-H 192.168.0.232 \
--db-port 3306 \
-n zinc \

错误非常明显:

WARN: 不建议在没有服务器身份验证的情况下建立 SSL 连接。根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 的要求,如果未设置显式选项,则默认情况下必须建立 SSL 连接。为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。您需要通过设置 useSSL=false 来显式禁用 SSL,或者设置 useSSL=true 并为服务器证书验证提供信任库。无法连接到数据库:用户 'apps'@'192.168.1.241' 的访问被拒绝(使用密码:是)

我对自己做错了什么感到茫然。JasperStarter 没有“禁用 SSL”开关,因此他们建议在?useSSL=false我已经完成但没有发生任何事情的 DB URL 中指定该选项?!?

我尝试将密码等放在所有各种组合中的 DB URI 中,结果相同。

我不确定这是 JasperStarter 问题还是我缺少的连接字符串中的一些小问题,有什么想法或建议吗?

编辑 | 我很好奇是否必须安装 JDBC 驱动程序,因为我使用的是 DB-URI 而不是显式命令开关?在内部,无论如何,二进制文件不会使用它,那么这些年来它是如何工作的,但现在因为我正在使用--db-uri它所需要的?

我在 vagrant 文件中安装 jasperstarter 的命令:

#  JasperStarter start
sed -i "s/stretch main/stretch main non-free contrib/g" /etc/apt/sources.list && apt-get update && apt-get -y install msttcorefonts

cd /tmp
cp /vagrant/.java/jasperstarter-3.0.0.zip   jasperstarter-3.0.0.zip
unzip jasperstarter-3.0.0.zip
mv jasperstarter /opt;
cd /opt/jasperstarter/bin
chmod 777 *
ln -s  /usr/share/java/mysql.jar  /opt/jasperstarter/jdbc/mysql.jar
apt-get install -y default-jre
# JasperStarter end
4

0 回答 0