** (Tds.Error) tcp connect: econnrefused

hey guys i cant connect to my db from a new project,
when i attempt to create a new db using mix ecto.setup / mix ecto.create
i am getting this connection error

01:05:10.426 [error] GenServer #PID<0.284.0> terminating
** (Tds.Error) tcp connect: econnrefused
    (db_connection 2.4.1) lib/db_connection/connection.ex:100: DBConnection.Connection.connect/2
    (connection 1.1.0) lib/connection.ex:622: Connection.enter_connect/5
    (stdlib 3.16.1) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: nil
State: Tds.Protocol
** (Mix) The database for Razo.Repo couldn't be created: killed

am working from a windows 11 machine
my dev.exs

config :razo, Razo.Repo,
  username: "sa",
  password: "Qwerty@12",
  database: "razo_dev",
  port: 1433,
  hostname: "localhost",
  show_sensitive_data_on_connection_error: true,
  pool_size: 10

and my_app.Repo

use Ecto.Repo,
    otp_app: :razo,
    adapter: Ecto.Adapters.Tds

Connection refused means that nobody is listening on port 1433. Have you double checked this?

i forgot to enable tcp from sql cong file thanks

although its generated a new error

 (UndefinedFunctionError) function Tds.Encoding.encode/2 is undefined (module Tds.Encoding is not available)
    Tds.Encoding.encode("DESKTOP-DQ7NHKS", "utf-16le")

tds module not being available

Better open a new thread. Also post more code and show what have you tried (including library version). Generic questions are usually not answered so please make sure you include some details.

1 Like

Per the README, make sure you’ve included {:tds_encoding, "~> 1.0"} in your dependencies in mix.exs - just setting the configuration without installing the package would produce exactly the error above.

so i have included it and landed another error

== Compilation error in file lib/tds_encoding.ex ==
** (ErlangError) Erlang error: :enoent
    (elixir 1.12.0) lib/system.ex:1041: System.cmd("cargo", ["metadata", "--format-version=1"], [cd: "native/tds_encoding"])
    (rustler 0.22.2) lib/rustler/compiler/config.ex:81: Rustler.Compiler.Config.external_resources/2
    (rustler 0.22.2) lib/rustler/compiler/config.ex:69: Rustler.Compiler.Config.build/1
    (rustler 0.22.2) lib/rustler/compiler.ex:9: Rustler.Compiler.compile_crate/2
    lib/tds_encoding.ex:37: (module)
could not compile dependency :tds_encoding, "mix compile" failed. You can recompile this dependency with "mix deps.compile tds_encoding", update it with "mix deps.update tds_encoding" or clean it with "mix deps.clean tds_encoding"

You need to install Rust. Apparently the library has a Rust native part.

Do you really need tds_encoding?

Perhaps deleting this dependency from your mix.exs file solves the problem.