Using SSL with MySQL.jl?

Hi all !
I’m trying to connect to a MySQL db using MySQL.jl
I have hard time using the SSL protocol.
The connection :

conn = MySQL.connect(
        db_ip,
        user,
        password,
        db=db_name,
        opts=Dict(
            MySQL.API.MYSQL_OPT_SSL_CA => "mysql-root.pem",
            MySQL.API.MYSQL_OPT_SSL_CERT => "mysql-reader.crt",
            MySQL.API.MYSQL_OPT_SSL_KEY => "mysql-reader.key"
        )
    )

returns the error:

(3159): Connections using insecure transport are prohibited while --require_secure_transport=ON.
#connect#11(::String, ::Int64, ::String, ::UInt32, ::Dict{Any,Any}, ::Function, ::String, ::String, ::String) at MySQL.jl:38
#connect at none:0 [inlined]
connect_weenai() at SqlUtils.jl:11
top-level scope at none:0

Any idea how to set up correctly the SSL connection ?
I use this database via Python (and R) without any problem, following:

MySQLdb.connect(
        host=db_ip, 
        user=user, 
        passwd=password,
        db=db_name,
        ssl={
                'ca' : "mysql-root.pem",
                'cert' : "ween-mysql-reader.crt",
                'key' : "ween-mysql-reader.key"
                }
    )

I suspect it is only my connection definition in Julia that is poorly defined. Thx for any advice !

I’m not familiar enough w/ how mysql + ssl work together to know what’s wrong here, but I tend to agree; it seems like there’s some setting or something that’s not set right. If you do a bit of research, either mysql docs or another language package docs, I’m happy to help debug and walk through the MySQL.jl package side of things to help figure it out.

I’m back on this issue. I tried some potential tricks to solve it, including:

  • Absolute paths for the certificates
  • modify the my.cnf file to allow secure and remote transactions
  • replace mariadb dep by mysql-client

without success.

Local MySQL connections without SSL do work fine using MySQL.jl.