【问题标题】:Providing port number in MySQL or any other database在 MySQL 或任何其他数据库中提供端口号
【发布时间】:2020-04-21 05:30:30
【问题描述】:

这个问题也与其他 DBMS 有关,但我会问它,因为它与 MySQL 有关,因为这是我最熟悉的问题。为什么必须在 MySQL 连接中输入端口名称?我从未见过 MySQL 使用除3306 以外的任何端口,所以对我来说输入端口似乎没有必要(就像在网络浏览器中输入“http://google.com:80”一样)。

例如,来自 SequelPro:

为什么端口甚至包含在数据库连接中?是否有过 mysql 的端口 not 3306 的情况?

【问题讨论】:

    标签: mysql port


    【解决方案1】:

    可以在同一台主机上运行多个 MySQL 服务器实例,侦听同一 IP 接口,但它们必须配置为使用不同的端口。

    https://dev.mysql.com/doc/refman/8.0/en/mysqld-multi.html

    【讨论】:

    • 我明白了。您在实际使用中是否遇到过这种情况,或者非常罕见?
    • 这并不常见,但我不会说非常罕见。我管理过使用这种方法的网站。在同一主机上每个 VM 或 Docker 容器只运行一个 mysqld 更为常见,因此每个 mysqld 仍然可以在其各自的 IP 接口内侦听端口 3306。
    • 如果我们包括测试环境,更常见的是在同一主机上并行运行 mysqld 实例,并且每个 mysqld 使用不同的端口。您可以使用类似github.com/datacharmer/dbdeployer 的产品运行许多 mysqld 实例以进行测试
    【解决方案2】:

    它可能位于 TCP 负载均衡器后面,它在 3306 上侦听,并且您想直接连接到真正的 MySQL 服务器。

    这种情况并不多,但最好保留该选项(最好使用 3306 默认值),而不是省略它。

    【讨论】:

    • 为什么要这样做而不是让 MySQL 直接监听 3306?负载均衡器后面会不会有多个 MySQL 服务器?
    猜你喜欢
    • 2013-10-25
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2012-05-03
    • 2019-07-03
    • 2011-05-17
    相关资源
    最近更新 更多