首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Mac上的Ballerina.io连接到MySQL

无法从Mac上的Ballerina.io连接到MySQL
EN

Stack Overflow用户
提问于 2018-08-23 22:21:10
回答 4查看 292关注 0票数 1

我想建立一个简单的应用程序,连接到远程MySQL服务器。然而,我不能让它工作。

代码语言:javascript
复制
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上工作吗?

代码语言:javascript
复制
$ 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和:

代码语言:javascript
复制
$ ballerina --version
Ballerina 0.980.1
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-24 12:07:39

首先,最新的芭蕾舞版本是0.981.0。如果你能使用最新的版本,那就太好了,因为它会包含最新的bug修复和改进。

在Ballerina中,有一个通用的jdbc客户端,可用于连接到任何具有jdbc驱动程序的数据库。此外,对于mysql和h2,有两个专门为这两个数据库实现的客户端。

当连接到mysql时,您可以使用通用jdbc客户端或特定于mysql的客户端。建议使用特定于mysql的客户端。

在您的代码片段中,我可以看到您正在使用jdbc客户端。正如上面提到的Anoukh,端点配置不正确。

以下是通用jdbc客户端端点的示例配置。

代码语言:javascript
复制
endpoint jdbc:Client testDB {
    url: "jdbc:mysql://localhost:3306/testdb",
    username: "user1",
    password: "pass1",
    poolOptions: { maximumPoolSize: 5 }
};

下面是mysql客户端端点的示例配置。

代码语言:javascript
复制
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 inder.log的文件。另外,请分享您正在使用的mysql数据库和驱动程序版本。

票数 1
EN

Stack Overflow用户

发布于 2018-08-24 02:03:57

您是否已将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驱动程序

票数 0
EN

Stack Overflow用户

发布于 2018-08-24 09:53:22

问题可能出在jiraDB端点配置中。根据API docs,数据库的URL的配置将以url而不是host的形式给出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51988037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档