Skip to content

set default protocol to tcp #1074

Open
Open
@DavisLinger

Description

@DavisLinger

Issue description

Can tcp of the connection string be set as a default protocol option, which will fix the url standard, we can easily parse out the parameters of the entire connection string, and adding the tcp parameter will cause the entire string to fail to complete according to the url standard Parsing.

Example code

mysql://root:123456@127.0.0.1:3339/ad_base?charset=utf8”

this url can be parsed.but this url can not be parsed because of tcp():

"mysql://root:123456@tcp(127.0.0.1:3339)/ad_base?charset=utf8"

Configuration

*Driver version (or git SHA):latest

*Go version:go 1.12-1.14

*Server version: MySQL 8.0

Server OS: E.g. Mac OS Catalina

Activity

dolmen

dolmen commented on Jun 1, 2020

@dolmen
Contributor

Use mysql.ParseDSN to parse a DSN.

methane

methane commented on May 26, 2023

@methane
Member

DSN is not URL. But I think address/db is better than network/db.

But it is breaking change. Currently, unix/db is valid DSN. It means to connecut localhost db with unix socket where the default location.

After changing it, unix/db means tcp(unix:3306)/db. So this is breaking change.
I like the change. I am worried about what everyone will think of the breaking changes.

binarious

binarious commented on Oct 23, 2024

@binarious

ParseDSN also fails to parse the provided DSN without tcp(). The main issue is that the current DSN format required for TCP connections can't be shared with other tools (like atlas), which typically default to TCP but don't accept the tcp() syntax. Additionally, using ?protocol=tcp isn't an option, leading to the need to define the DSN at least twice.

added this to the v1.10.0 milestone on Apr 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @dolmen@methane@binarious@DavisLinger

        Issue actions

          set default protocol to tcp · Issue #1074 · go-sql-driver/mysql