位置: 编程技术 - 正文

MySQL服务器连接过程浅析(连接mysql服务命令)

编辑:rootadmin

推荐整理分享MySQL服务器连接过程浅析(连接mysql服务命令),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql连接服务器命令,连接服务器的mysql,连接mysql服务命令,mysql连接不上服务器解决方法,mysql连接服务器命令,mysql连接不上服务器解决方法,mysql连接不上服务器解决方法,连接mysql服务命令,内容如对您有帮助,希望把文章链接给更多的朋友!

mysqld是MySQL服务器端主进程,可以说mysqld是MySQL的真正核心,一切工作都是围绕mysqld进程进行的。所以要解剖mysql这个庞然大物,mysqld的代码是最好的突破口。

一切都是从熟悉的main()函数开始的,其实是从mysqld_main()函数开始的。这些代码都在mysqld.cc。mysqld_main()随后调用了win_main)()。win_main()函数主要是做了一些初始化的工作。

初始化工作完成之后,MySQL已经做好准备接受连接了。然后我们的主角Handle_connections_methods()函数登场了。这个函数的主要工作是新建3个子进程,他们分别接受TCP/IP、命名管道以及共享内存这三种方式的连接。一般情况下客户都是用TCP/IP(socket)来连接MySQL服务器的,这是最有弹性的通信方式。但是在嵌入式软件的应用环境中,需要采用后两种通信方式。

MySQL服务器连接过程浅析(连接mysql服务命令)

简化后的handle_connections_methods()函数:新建了3个线程之后,handle_connectins_methods()函数进入一个长时间循环,直到3个连接线程全部退出后才退出。这里我主要看看socket的连接线程,我们的研究对象就是这个handle_connections_sockets_thread。这个线程把自己初始化之后,就直接调用了handle_connections_sockets();

handle_connections_sockets()函数使用select()调用监听mysqld的端口,然后等待客户端的连接。等到一个客户端连接后,这个函数中会新建一个THD类型的变量,这个变量是一个“交际花”,从连接建立开始,到SQL语法分析、查询执行、结果返回等等。这个变量一直都在,总之这是一个非常重要的变量。

还有struct st_vio这个结构体,这个结构体是一个命令的中转站。在“交际花”THD中也定义了一个vio类型的结构体。这个结构体的功能就是从储存从套接字中读取通信内容,然后又把自己的值赋给THD的vio变量。VIO类型中详细的描述了一次请求,包括请求的内容、时间、请求的套接字地址等等。之后发生的事情就是把这个“交际花”传递到服务线程,create_thread_to_handle_connection()实现这个功能。

以下是删减后的代码这个函数会查看有没有闲置的缓存线程(MySQL不会把断开连接后的服务线程立即销毁掉,而是缓存了起来),如果有就是用缓存线程,如果没有就新建一个线程来服务连接。至此,一个连接就进入了服务线程,连接线程返回继续等待连接。

后边的内容就都是在服务线程中实现的,《深入理解MySQL》中有很详细的代码跟踪,感兴趣的同学可以看看。我把函数调用顺序附上,供参考。

MySQL存储引擎中的MyISAM和InnoDB区别详解 在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了

mysql的分区技术详细介绍 一、概述当MySQL的总记录数超过了万后,会出现性能的大幅度下降吗?答案是肯定的,但是,性能下降的比率不一而同,要看系统的架构、应用程序、

MySql数据分区操作之新增分区操作 如果想在已经建好的表上进行分区,如果使用alter添加分区的话,mysql会提示错误:ERRORHYPartitionmanagementonanotpartitionedtableisnotpossible正确的方法是新

标签: 连接mysql服务命令

本文链接地址:https://www.jiuchutong.com/biancheng/347286.html 转载请保留说明!

上一篇:多种不同的 MySQL 的 SSL 配置

下一篇:MySQL存储引擎中的MyISAM和InnoDB区别详解(mysql8 存储引擎)

  • 关税完税价格是离岸价还是到岸价
  • 土地增值税特点不包括
  • 财务管理税后利息率计算公式
  • 出纳发票不见了可以用微信转账记录记账吗
  • 兼职人员的差旅费怎么算
  • 过桥费是多少
  • 个贷系统平账专户A户
  • 污水处理费免征增值税申报怎么填写
  • 企业所得税纳税人包括哪些类型
  • 工业企业员工工资占收入比例
  • 房产税原值是否包括土地
  • 空白增值税专用发票丢失罚款
  • 周转材料摊销借贷方向
  • 建筑工程公司涉及的会计科目
  • 小企业作废的发票怎么开
  • 毁损材料的损失怎么算
  • 附追索权的应收债权出售的会计处理
  • 拿票报销的交通费要交个人所得税吗
  • 没有发票的费用计入什么科目
  • 新办公司注册资金直接支付开办费吗
  • 非住宅过户税费标准最新
  • 没有经营的空壳公司可以贷款吗
  • 公司利润怎么提出来给老板
  • 所得税汇算调增调减是什么意思
  • 固定资产差额
  • 宿舍管理制度规定心得体会范文
  • 结转工资结算中各种代扣款项
  • 赠品促销怎么做
  • 实收资本可以大于注册资本嘛
  • 农产品销售税收优惠政策
  • 老电脑更新系统会怎么样
  • session.php
  • php yii框架
  • vue如何预加载图片
  • 企业资产损失所得税税前扣除
  • 企业已开出的成本怎么算
  • php如何做app
  • php自定义函数格式是什么
  • 进货退出进项税额的核算
  • 公司财务变更需要变更哪些内容
  • 开票人是管理员可以报销吗
  • 工程产值是怎么算的
  • 合伙企业要不要每月做账?报税是不是与一般的有限公司一样,每月申报纳税吗?
  • 小微企业如何升级一般纳税人
  • 税前扣除的支出
  • sh sqlplus
  • 计提固定资产折旧是什么意思
  • MySQL中create table as 与like的区别分析
  • 采用公允价值模式计量的投资性房地产处置
  • 企业研发费用加计扣除比例
  • 出资入股是什么意思
  • 借别人账户过钱
  • 其他应付款个人往来的涉税风险
  • 专项应付款如何冲减
  • 一般纳税人月销售额10万以下
  • 公转私怎么操作
  • 如何开展服务
  • 本票丢了别人可以取钱吗
  • 事业单位会计岗位属于哪一类
  • 资金账簿印花税税率
  • mysqldump -h
  • mac salad
  • ubuntu 16.04 u盘安装
  • windows7自动开机脚本文件
  • 微软宣布将AI引入Office套件
  • linux系统变卡慢了
  • linux怎么设置桌面
  • linux ftp搭建教程
  • win8无法安装wps
  • jquery插件大全
  • 创建表格在哪里找
  • js旋转函数
  • node+mongodb
  • python中pandas.DataFrame对行与列求和及添加新行与列示例
  • js获取宽高
  • js面向对象写法
  • 如何加入一带一路?
  • 企业年金企业账户部分可以提取么
  • 如何打印个税缴纳记录
  • 辽宁交管12123能用微信支付吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设