连接到 kubernetes mysql 服务时,go-mysql 连接被拒绝

使用标准包连接到带有 go 应用程序的 mysql 实例时遇到问题。这是我的连接字符串/日志


    [13 Nov 16 13:53 +0000] [INFO] connecting to MySQL.. root:awsomepass@tcp(a-mysql-0:3340)/db?charset=utf8&parseTime=True&loc=Local

    2016/11/13 13:53:25 dial tcp 10.108.1.35:3340: getsockopt: connection refused

我试过


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

这是我建立连接的方式,只是基本的,仅使用字符串连接


db, err := sql.Open("mysql", "root:awsomepass@tcp(a-mysql-0:3340)/db?charset=utf8&parseTime=True&loc=Local")

if err != nil {

    log.Fatal(err)

}

我可以 ping 服务,使用 mysql-client 从不同的 pod 连接到它。


    # can connect without port for service

    / # mysql -u root -h a-mysql-0 -p

    Enter password:

    Welcome to the MariaDB monitor.  Commands end with ; or \g.

    Your MySQL connection id is 11

    Server version: 5.7.16 MySQL Community Server (GPL)


    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.


    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


    MySQL [(none)]> Ctrl-C -- exit!

    Aborted


    # can't' connect with port for service

    / # mysql -u root -h a-mysql-0:3340 -p

    Enter password:

    ERROR 2005 (HY000): Unknown MySQL server host 'a-mysql-0:3340' (-3)

和 mysql 服务


    ➜  stg git:(develop) ✗ kubectl describe svc a-mysql-0

    Name:            a-mysql-0

    Namespace:        default

    Labels:            name=a-mysql-0

                tier=database

                type=mysql

    Selector:        name=a-mysql-0,tier=database

    Type:            ClusterIP

    IP:            None

    Port:            a-mysql-0    3340/TCP

    Endpoints:        10.108.1.35:3340

    Session Affinity:    None

    No events.

有什么我错过或许可的吗?


明月笑刀无情
浏览 192回答 1
1回答

慕桂英3389331

得到了来自 mav 的 kubernetes-slack 的回复。我正在访问mysql-service一个错误的container-port. 默认 mysql 端口是3306. 我以为我正在使用一个自定义容器来暴露3340.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go