🧑💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:重温MySQL
@[toc]
MySQL采取的是什么架构
MySQL架构采取的是客户端/服务器架构。 运行过程:
- MySQL服务端程序启动。
- MySQL客户端启动,并与服务端建立连接。
- 客户端输入MySQL指令,将其作为请求发送到服务端;服务端根据请求的内容作出具体行动,并将结果返回给客户端。
MySQL客户端、服务端的启动
Windows安装默认路径为:C:\Program Files\MySQL\MySQL Server 5.7。本节内容主要介绍安装目录中的bin目录。其中的.exe程序包含客户端程序与服务端程序。
类Unix中启动服务端程序
- mysqld:表示启动Mysql服务端程序,执行后启动一个Mysql进程。
- mysqld_safe:一个启动脚本,执行后间接调用mysqld并可以记录启动过程中的错误日志。存放在数据目录中以.err为扩展名的文件中。
- mysql.server:一个启动脚本,执行后间接调用mysqld_safe。通过mysql.server start/stop启动、暂停服务端程序。
- mysqld_multi:可以启动或者停止多个mysql进程。
Windows中启动服务端程序
- 双击可执行文件.exe。
- 将可执行文件注册为服务
"C:\Program Files\MySQL\MySQL Server 5.7\mysqld" --install,之后通过net start MySQL启动服务。
Mysql客户端程序启动
通过mysql可执行文件启动,常用语法:mysql -h主机名 -u用户名 -p密码
客户端与服务端通信方式
- 通过TCP/IP协议,建立连接。默认监听端口为3306。
- 通过命名管道和共享内存。需要保证客户端和服务端位于同一台windows主机。 通过命名管道通信时,需要在服务器程序启动命令中加上--enable-named-pipe,然后在客户端启动命令添加--pipe或者--protocol=pipe参数;通过共享内存通信时,需要在服务端程序命令加上--shared-memory参数,然后在客户端启动命令添加--protocol=memory参数。
bin目录可执行文件总结
| 命令 | 解释 |
|---|---|
| innochecksum | 脱机InnoDB数据文件校验和检查 |
| msql2mysql | 将mSQL编写的应用转换成MySQL |
| myisamchk | 检查和修复MyISAM表的完整性错误 |
| myisam_ftdump | 在创建全文索引后,查看索引内容的工具 |
| myisamlog | 显示MyISAM日志文件内容 |
| myisampack | 生成压缩、只读的MyISAM表 |
| my_print_defaults | 输出默认参数 |
| mysql | MySQL的SQL解释器,用于执行SQL语句 |
| mysqlaccess | 管理用户接口,类似于GRANT命令 |
| mysqladmin | MySQL的管理接口程序 |
| mysqlbinlog | 用于产生二进制日志 |
| mysqlbug | 用于创建MySQL Bug报告的工具 |
| mysqlcheck | 数据完整性验证工具,与myisamchk类似,可在MySQL运行时使用 |
| mysql_client_test | C语言的简单测试框架 |
| mysql_config | 查看MySQL的编译参数 |
| mysql_convert_table_format | 转换表的存储引擎 |
| mysqld_multi | 管理多个监听不同Unix套接字文件和TCP/IP端口的mysqld进程 |
| mysqld_safe | 服务器进程管理器,用于启动和重启mysqld服务器进程 |
| mysqldump | 将MySQL数据库转储为文本文件,以备份和恢复数据库 |
| mysqldumpslow | 查看慢日志的工具 |
| mysql_find_rows | 从文件中提取匹配给定正则表达式的SQL语句 |
| mysql_fix_extensions | 以规范的形式修复扩展MyISAM表(ISAM表)文件 |
| mysql_fix_privilege_tables | 解决权限升级中的问题 |
| mysqlhotcopy | 快速备份数据库的Perl脚本 |
| mysqlimport | 导入数据的高效工具 |
| mysql_install_db | 生成新的MySQL授权表的脚本 |
| mysql_secure_installation | 提高MySQL安全性的支持工具 |
| mysql_setpermission | 以交互方式设置MySQL授权表中的权限 |
| mysql_show | 查看数据库和表的工具 |
| mysqlsla | 压力测试工具 |
| mysqltest | MySQL测试套件,用于功能强大的测试 |
| mysqltest_embedded | 类似于mysqltest,但用于支持libmysqld的嵌入式服务器 |
| mysql_tzinfo_to_sql | 加载时区表到MySQL数据库中的工具 |
| mysql_upgrade | 升级MySQL |
| mysql_waitpid | 等待进程终止信号的工具 |
| mysql_zap | 杀死匹配某一模式的进程 |
| perror | 查找错误信息的MySQL工具 |
| replace | 字符串替换工具 |
| resolveip | 将主机名解析为IP地址的实用程序 |
| resolve_stack_dump | 解析数字堆栈转储的符号 |
写在最后
感谢大家的阅读,如有不足请各位批评与指正。