位置: 编程技术 - 正文

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 存储引擎)

  • 工资超5000已申报税额为0,可以退税吗
  • 税控盘开票软件访问数据库错误
  • 允许税前扣除的项目
  • 个人所得税个体户减半
  • 员工交通费可以税前扣除吗
  • 企业购买雇主责任险会计分录
  • 大病医疗可以抵扣吗
  • 工会基金是扣个人还是扣企业的
  • 提供咨询服务的小规模企业是一般纳税人吗
  • 自然人税收系统怎么添加人员
  • 石油天然气管道保护法
  • 自用电管理
  • 出口产品报关单上保险费与实际不符可以丿退税吗
  • 工程管理费如何使用
  • 总公司委托分公司开票的委托书
  • 新成立的公司银行存款如何入账
  • 作为展示用的物品
  • 服务行业营业成本包括财务费用和管理费用吗
  • 税务需要申报吗
  • 个人所得税手续费
  • 票面税费和实际上税为什么不一样
  • 4s店付款
  • 承兑汇票背书用什么方法?
  • 培训费用走账需要交税吗
  • 影响盈利能力的外部因素
  • 2018增值税暂行条例
  • 计提企业所得税费用会计分录
  • 企业给学校捐款的申请怎么写
  • 在win7中,如何将所有窗口进行层叠排列显示
  • linux系统应对攻击的常用防御手段的描述
  • fxssvc.exe
  • 公司整体收购如何交税
  • csinsmnt.exe进程的作用介绍 csinsmnt是什么进程
  • 营业税改增值税的过程
  • 消费赠送积分
  • vuex的五个属性及使用方法 简书
  • 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  • phpstorm wsl
  • 销售旧货和销售使用过的物品税率
  • 任何单位和个人发现洗钱活动有权向什么举报
  • 企业所得税季初和季末怎么算
  • 多交增值税可以抵扣吗
  • 电子发票开出后如何查看
  • 印花税按什么的比例缴纳
  • 销售自用的生产设备一台
  • 口罩属于什么经济分类
  • 短期借款利息怎么做账
  • 企业所得税免税和减半征收
  • 纳税实务的涉税业务分几类
  • 外聘专家费用标准
  • 电子缴税付款凭证是什么结算方式
  • 建筑业简易征收税率5%
  • 减免税款月末是否结平
  • 旅行社开什么票
  • 对于资产负债表日后的非调整事项
  • 企业所得税和增值税重复收税了吗
  • 网站windows
  • ubuntu20.04忘记用户密码怎么办
  • ghost安装器怎么用
  • win8如何安装win10系统
  • win7系统如何屏幕放满屏幕
  • linux系统的安装和常用命令
  • opencvsharp读取图片
  • javascript编程规范
  • ObjectAnimator Demo
  • Cocos2dx3.2 CrazyTetris 单线裁剪 对于判断消除的思考(一)
  • jquery对动态生成的进行操作
  • node.js怎么搭建服务器
  • shell脚本 教程
  • 首次安装操作系统称为什么盘
  • 单例类python
  • js文字循环滚动代码
  • 河南居民医保网上缴费查询
  • 现在哪个行业的税负很重了
  • 北京税务局发票查询
  • 福建省个人所得税税率表查询
  • 金税三期怎么打完税凭证
  • 国家税务总局办税指南
  • 广州市地税服务大厅
  • 税收助力双创
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设