MySQL8.0连接协议及3306、33060、33062端口的作用解析

 更新时间:2022年08月17日 09:49:21   作者:刘大大__  
这篇文章主要介绍了MySQL8.0连接协议及3306、33060、33062端口的作用解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、MySQL连接层

连接层为每个连接维护一个线程。该线程处理查询执行。 在连接可以开始发送 SQL 查询之前,连接由验证用户名、密码和客户端主机。

连接层通过多种连接协议接受来自应用程序的连接:

  • TCP/IP
  • UNIX 套接字
  • 共享内存
  • 命名管道

如下图所示:

二、连接协议

协议在客户端库和驱动程序中实现。

连接协议的速度因本地设置而异。

除了旧版 MySQL 经典协议之外,MySQL X 协议还引入了MySQL 5.7.12 并在 MySQL 8.0 中默认启用。

MySQL 使用 TCP 将消息从客户端通过网络传输到服务器,可以使用以 mysqlx 为前缀的变量和选项来配置 MySQL X 协议。

mysqlx 变量的一些示例:

  • • mysqlx
  • • mysqlx_bind_address
  • • mysqlx_max_connections
  • • mysqlx_port
  • • mysqlx_socket

三、本地和远程连接协议:TCP/IP

TCP/IP(传输控制协议/互联网协议):

1、是用于连接 Internet 上的主机的连接协议套件

2、使用 IP 地址或 DNS 主机名来识别主机

3、使用 TCP 端口号来标识每个主机上的特定服务

MySQL 默认 TCP 端口号:

1、3306 用于 MySQL Classic 协议(服务器端口选项)

2、33060 用于 MySQL X 协议(服务器 mysqlx_port 选项)

3、33062 用于使用 MySQL Classic 协议的管理连接(服务器 admin_port 选项)

修改my.cnf

admin_address='localhost'

修改前后对比: 

[root@hadoop1 ~]# mysql -e "show variables like 'admin%'";
+------------------------+-----------------+
| Variable_name          | Value           |
+------------------------+-----------------+
| admin_address          |                 |
| admin_port             | 33062           |
| admin_ssl_ca           |                 |
| admin_ssl_capath       |                 |
| admin_ssl_cert         |                 |
| admin_ssl_cipher       |                 |
| admin_ssl_crl          |                 |
| admin_ssl_crlpath      |                 |
| admin_ssl_key          |                 |
| admin_tls_ciphersuites |                 |
| admin_tls_version      | TLSv1.2,TLSv1.3 |
+------------------------+-----------------+
[root@hadoop1 ~]# systemctl restart mysqld.service 
[root@hadoop1 ~]# mysql -e "show variables like 'admin%'";
+------------------------+-----------------+
| Variable_name          | Value           |
+------------------------+-----------------+
| admin_address          | localhost       |
| admin_port             | 33062           |
| admin_ssl_ca           |                 |
| admin_ssl_capath       |                 |
| admin_ssl_cert         |                 |
| admin_ssl_cipher       |                 |
| admin_ssl_crl          |                 |
| admin_ssl_crlpath      |                 |
| admin_ssl_key          |                 |
| admin_tls_ciphersuites |                 |
| admin_tls_version      | TLSv1.2,TLSv1.3 |
+------------------------+-----------------+
[root@hadoop1 ~]# 

成功登录:

[root@hadoop1 ~]# mysql -P 33062
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.28 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

网络监听情况:

[root@hadoop1 ~]# netstat -anltp | grep 33062
tcp        0      0 127.0.0.1:33062         0.0.0.0:*               LISTEN      1104641/mysqld      
[root@hadoop1 ~]# 

设置最大连接数方便测试:

mysql> set global max_connections = 1;
Query OK, 0 rows affected (0.00 sec)

重新连接:

[root@hadoop1 ~]# mysql
ERROR 1040 (HY000): Too many connections
[root@hadoop1 ~]# mysql -P 33062 --protocol tcp
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.28 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

从 MySQL 8.0.14 开始,MySQL 服务器允许专门为管理连接配置 TCP/IP 端口。这为用于普通连接的网络接口上允许的单个管理连接提供了一种替代方法,即使已经建立了 max_connections 连接。只有在启动时设置了 admin_address 系统变量以指示管理接口的 IP 地址时,该接口才可用。如果未指定 admin_address 值,则服务器不维护管理界面。

只有SERVICE_CONNECTION_ADMIN 权限的用户才允许连接。没有限制管理连接的数量。 MySQL 服务器使用 DNS(域名系统)来解析使用 TCP/IP 协议连接的客户端主机的名称,并将它们存储在主机缓存中。对于在名称解析过程中出现性能问题的大型网络,请使用 --skip-name-resolve 选项禁用 DNS 或增加 --host-cache-size 选项的值。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • mysql数据库安装和卸载方式

    mysql数据库安装和卸载方式

    这篇文章主要介绍了mysql数据库安装和卸载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 101个MySQL的配置和优化的提示

    101个MySQL的配置和优化的提示

    这里是101条调节和优化 MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧
    2013-08-08
  • 详解MySQL的用户密码过期功能

    详解MySQL的用户密码过期功能

    这篇文章主要为大家详细介绍了MySQL的用户密码过期功能的相关资料,需要的朋友可以参考下
    2016-02-02
  • 浅谈mysqldump使用方法(MySQL数据库的备份与恢复)

    浅谈mysqldump使用方法(MySQL数据库的备份与恢复)

    下面小编就为大家带来一篇浅谈mysqldump使用方法(MySQL数据库的备份与恢复)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Mysql数据库之Binlog日志使用总结(必看篇)

    Mysql数据库之Binlog日志使用总结(必看篇)

    下面小编就为大家带来一篇Mysql数据库之Binlog日志使用总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • mysql双游标嵌套循环方式

    mysql双游标嵌套循环方式

    这篇文章主要介绍了mysql双游标嵌套循环方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL中Set与Enum的区别和使用详解

    MySQL中Set与Enum的区别和使用详解

    这篇文章主要介绍了MySQL中Set与Enum的区别和使用详解,数据库中的 set 是一种集合数据类型,用于存储不同的元素,每个元素只能出现一次,Set 的主要作用是方便进行集合运算,如并集、交集等操作,需要的朋友可以参考下
    2024-01-01
  • 优化 MySQL 3 个简单的小调整

    优化 MySQL 3 个简单的小调整

    本文给大家带来了优化 MySQL 3 个简单的小调整,需要的朋友参考下
    2018-02-02
  • mysql 5.7.10 安装配置方法图文教程

    mysql 5.7.10 安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.10 安装配置方法图文教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • MySQL存储过程输入参数(in),输出参数(out),输入输出参数(inout)

    MySQL存储过程输入参数(in),输出参数(out),输入输出参数(inout)

    这篇文章主要介绍了MySQL存储过程输入参数(in),输出参数(out),输入输出参数(inout),存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;Python里面的函数
    2022-07-07

最新评论