在本地使用Consul和Bind9作为服务公开MySql

我试图设置Consul和Bind9在本地公开MySql作为服务。 我遵循这些步骤

  1. 安装MySql

    $ sudo apt-get update

    $ sudo apt-get install mysql-server

  2. 安装解压缩和Nginx

    $ sudo apt-get update

    $ sudo apt-get install unzip

    $ sudo apt-get install nginx

  3. 安装领事

    $ cd / usr / local / bin

    $ sudo wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_amd64.zip

    $ sudo unzip consul_0.9.2_linux_amd64.zip

    $ sudo rm -rf consul_0.9.2_linux_amd64.zip

  4. 安装Consul服务器为MySql

    $ cd〜

    $ mkdir -p consul-config / server

    $ vim consul-config / server / config.json

{“services”:[{“id”:“mydatabase-3306”,“name”:“mydatabase”,“tags”:[“mysql”],“port”:3306}]}

  1. 为Consul设置Nginx

    $ sudo vim /etc/nginx/conf.d/consul.conf

    服务器{听80; server_name 192.168.1.121; root / home / agusgambina / consul-server; 位置/ {proxy_pass http://127.0.0.1:8500 ; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header主机$ http_host; }}

    $ sudo systemctl restart nginx.service

  2. 安装并设置Bind9

    $ sudo apt-get update

    $ sudo apt-get install bind9 bind9utils bind9-doc

启用IPv4模式

$ sudo systemctl edit --full bind9 /etc/systemd/systemd/bind9.service . . . [Service] ExecStart=/usr/sbin/named -f -u bind -4 ... $ sudo vim /etc/bind/named.conf options { directory "/var/cache/bind"; recursion yes; allow-query { localhost; }; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-enable no; dnssec-validation no; auth-nxdomain no; listen-on-v6 { any; }; # conform to RFC1035 }; include "/etc/bind/consul.conf"; include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; $ sudo vim /etc/bind/consul.conf zone "consul" IN { type forward; forward only; forwarders { 127.0.0.1 port 8600; }; }; $ sudo systemctl daemon-reload $ sudo systemctl restart bind9 
  1. 开始领事

    $ consul agent -dev -config-dir = / home / agusgambina / consul-config / server /

执行上面的行后,我可以去http:// localhost:8500 ,我看到Consul和MySql服务正在运行

  1. 连接到MySql

如果我连接到本地主机,我能够做到这一点

 $ mysql -u root -p -h localhost 

但是,当我尝试连接到mydatabase.service.consul我收到此错误信息

 > ERROR 2005 (HY000): Unknown MySQL server host 'mydatabase.service.consul' (0)