title: Kubernetes 1.16 Nginx Ingress (0.26.1) TCP Mariadb/MySQL service not working
body: <p>I want to expose my Mariadb pod using Nginx ingress TCP service by following this step <a href="https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/" rel="nofollow noreferrer">https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/</a>.  Mariadb running in default name space, with mariadb service type as ClusterIP.  I am running Nginx Ingress controller in nginx-ingress namespace, also defined <code>tcp-services</code> cofigmap for <code>mariadb</code> service.  But I am unable to connect MariaDB database from outside of the cluster.</p>
  
  <p>From Nginx controller log I can see its reading tcp-services.</p>
  
  <p>Ingress configuration</p>
  
  <pre><code>containers:
        - args:
          - /nginx-ingress-controller
          - --default-backend-service=nginx-ingress/nginx-ingress-default-backend
          - --election-id=ingress-controller-leader
          - --ingress-class=nginx
          - --configmap=nginx-ingress/nginx-ingress-controller
          - --default-ssl-certificate=nginx-ingress/ingress-tls
          - --tcp-services-configmap=nginx-ingress/tcp-services
          - --udp-services-configmap=nginx-ingress/udp-services
  </code></pre>
  
  <p>ConfigMap:</p>
  
  <pre><code>apiVersion: v1
  kind: ConfigMap
  metadata:
    name: tcp-services
    namespace: nginx-ingress
  data:
    3306: "default/mariadb:3306"
  </code></pre>
  
  <p>Ingress controller nginx config for TCP Service</p>
  
  <pre><code> # TCP services
  
          server {
                  preread_by_lua_block {
                          ngx.var.proxy_upstream_name="tcp-default-mariadb-3306";
                  }
  
                  listen                  3306;
  
                  proxy_timeout           600s;
                  proxy_pass              upstream_balancer;
  
          }
  </code></pre>
  
  <p>when I connect from external server, getting this message:</p>
  
  <pre><code>ERROR 2002 (HY000): Can't connect to MySQL server on 
  </code></pre>
  
  <p>any tips to troubleshoot this issue?</p>
  
  <p>thanks</p>
  
  <p>I was missing my service with TCP Port info, after adding it I was able to access the MySQL with my service Port Number. Thanks for <code>Emanuel Bennici</code> pointing this one out.</p>
  
  <p>Here is my service:</p>
  
  <pre><code>apiVersion: v1
  kind: Service
  metadata:
    name: nginx-ingress-controller  
  spec:
    externalTrafficPolicy: Cluster
    ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https
    - name: 3066-tcp
      port: 3066
      protocol: TCP
      targetPort: 3066-tcp
    selector:
      app: nginx-ingress
      component: controller
      release: nginx-ingress
    sessionAffinity: None
    type: NodePort
  </code></pre>