我想构建一个连接到远程MySQL服务器的简单应用。但是,我无法使其工作。
import ballerina/io;
import ballerina/jdbc;
import ballerina/mysql;
endpoint jdbc:Client jiraDB {
host: "jdbc:mysql://DB-SERVER:3306/jira",
username: "jira",
password: "PWD",
poolOptions: { maximumPoolSize: 5 }
};
type Domain record {
string domain,
string jira,
};
function main(string... args) {
var ret = jiraDB->select("SELECT * FROM `domains`", ());
table domainTable;
match ret {
table tableReturned => domainTable = tableReturned;
error e => io:println("Select data from domains table failed: " + e.message);
}
while(domainTable.hasNext()) {
var domain = <Domain>domainTable.getNext();
match domain {
Domain d => io:println("Domain: " + d.domain);
error e => io:println("Error in get employee from table: "
+ e.message);
}
}
}
MySQL的结构并不是很重要。我认为这与丢失/错误使用的JDBC / MySQL库有关。
您是否对如何使其在Mac OS X上运行有任何想法?
$ ballerina run hello.bal
error: ballerina/runtime:CallFailedException, message: call failed
at ..<stop>(hello.bal:5)
caused by error
at ballerina/jdbc:stop(endpoint.bal:66)
我将最新的Mac OS X与以下设备配合使用:
$ ballerina --version
Ballerina 0.980.1
答案 0 :(得分:1)
首先,最新的芭蕾舞演员版本为0.981.0。如果您可以使用最新版本,那就太好了,因为它将包含最新的错误修复和改进。
在Ballerina中,有一个通用的jdbc客户端,可用于连接到具有jdbc驱动程序的任何数据库。另外,对于mysql和h2,有两个专门为这两个数据库实现的客户端。
连接到mysql时,可以使用通用的jdbc客户端,也可以使用mysql特定的客户端。建议使用特定于mysql的客户端。
在您的代码段中,可以看到您正在使用jdbc客户端。如上面的Anoukh所述,端点配置不正确。
以下是通用jdbc客户端端点的示例配置。
endpoint jdbc:Client testDB {
url: "jdbc:mysql://localhost:3306/testdb",
username: "user1",
password: "pass1",
poolOptions: { maximumPoolSize: 5 }
};
以下是mysql客户端端点的示例配置。
endpoint mysql:Client testDB {
host: "localhost",
port: 3306,
name: "testDB",
username: "user1",
password: "pass1",
poolOptions: { maximumPoolSize: 5 }
};
要使用任何一个客户端,您需要将mysql jdbc驱动程序复制到$ {BALLERINA_HOME} / bre / lib。
即使在更正配置并复制驱动程序之后,如果仍然遇到问题,请检查是否在运行bal文件并共享的位置创建了名为ballerina-internal.log的文件。另外,请共享您正在使用的mysql数据库和驱动程序版本。
答案 1 :(得分:0)
您是否已将MySQL JDBC驱动程序复制到BALLERINA_HOME/bre/lib
文件夹中?
您可以使用which ballerina
命令找到芭蕾舞女演员的家。
您可以从http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar下载mysql jdbc驱动程序
答案 2 :(得分:0)
问题可能出在"FALSE"
端点配置中。根据{{3}},数据库URL的配置应为jiraDB
而不是url
。
答案 3 :(得分:0)
我无法连接到Mysql,并且遇到了驱动程序实例错误。我解决了!我不确定将答案发布在哪里,但我认为这将是解决芭蕾舞女演员Mysql连接问题的好资源。
在我的终端中:echo $ BALLERINA_HOME /图书馆/芭蕾舞女演员/芭蕾舞女演员-0.990.2 在正确的位置复制好罐子!
转到:http://central.maven.org/maven2/mysql/mysql-connector-java/ 我已经下载了最新的稳定版本(撰写本文时为8.0.15)。 将罐子复制到$ BALLERINA_HOME / bre / lib /
我以前的版本有错误。
请注意您的jar具有正确的扩展名(.jar而不是具有相同名称的存储库)。
还请确保已完成建议(安装jar时,请参阅Oracle的文档,即设置类路径)
在您的终端中,设置类路径: 导出CLASSPATH = $ CLASSPATH:/Library/Ballerina/ballerina-0.990.2/bre/lib/mysql-connector-java-8.0.15
那就可以了!