go-mysql 连接到 kubernetes mysql 服务时连接被拒绝
go-mysql connection refused when connecting to kubernetes mysql service
我在使用标准包通过 go 应用程序连接到 mysql 实例时遇到问题。
这是我的连接string/log
[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 服务,从不同的 pod 使用 mysql-client 连接到它。
# 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.
我有什么遗漏或许可的吗?
从 kubernetes-slack 和 mav 得到了回复。我正在访问 mysql-service
错误的 container-port
。默认 mysql 端口为 3306
。我以为我使用的是公开 3340
.
的自定义容器
我在使用标准包通过 go 应用程序连接到 mysql 实例时遇到问题。 这是我的连接string/log
[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 服务,从不同的 pod 使用 mysql-client 连接到它。
# 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.
我有什么遗漏或许可的吗?
从 kubernetes-slack 和 mav 得到了回复。我正在访问 mysql-service
错误的 container-port
。默认 mysql 端口为 3306
。我以为我使用的是公开 3340
.