我想建立一个简单的应用程序,连接到远程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库有关。
你有什么办法让它在MacOSX上工作吗?
$ 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
4条答案
按热度按时间vsaztqbk1#
我无法连接到mysql,我面临一个驱动程序示例错误。我解决了!我不确定我的答案张贴在好地方,但我认为这将是一个很好的资源,以解决一些问题与mysql连接问题在芭蕾舞。
在我的终端:echo$ballerina\u home/library/ballerina/ballerina-0.990.2在正确的位置复制好的jar!
去:http://central.maven.org/maven2/mysql/mysql-connector-java/ 我已经下载了最新的稳定版本(在编写8.0.15时)。在$ballerina\u home/bre/lib中复制jar/
我以前的版本有个错误。
请注意,您的jar具有正确的扩展名(.jar不是同名的存储库)。
还要确保已经完成了建议(安装jar时请参阅oracle的文档,即设置类路径)
在终端中,设置类路径:export classpath=$classpath:/library/ballerina/ballerina-0.990.2/bre/lib/mysql-connector-java-8.0.15
那就行了!
5m1hhzi42#
您是否已将mysql jdbc驱动程序复制到
BALLERINA_HOME/bre/lib
文件夹?你可以使用
which ballerina
命令。您可以从下载mysql jdbc驱动程序http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar
7rtdyuoh3#
首先,最新的芭蕾舞版本是0.981.0。如果你能使用最新的版本那就太好了,因为它会包含最新的错误修复和改进。
在ballerina中,有一个通用的jdbc客户机,可以用来连接到任何具有jdbc驱动程序的数据库。另外,对于mysql和h2,有两个客户机是专门为这两个数据库实现的。
当连接到mysql时,您可以使用通用jdbc客户机或mysql特定客户机。建议使用mysql特定的客户端。
在您的代码片段中,我可以看到您正在使用jdbc客户机。如上所述,端点配置不正确。
下面是通用jdbc客户端端点的示例配置。
下面是mysql客户端端点的示例配置。
为了使用任何一个客户机,您需要将mysql jdbc驱动程序复制到${ballerina\u home}/bre/lib。
即使更正了配置并复制了驱动程序,如果您仍然面临此问题,请检查是否在运行bal文件和共享的位置创建了名为ballerina-internal.log的文件。另外,请共享您使用的mysql数据库和驱动程序版本。
uinbv5nw4#
问题可能在
jiraDB
终结点配置。根据api文档,数据库url的配置如下url
而不是host
.