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 | 解析数字堆栈转储的符号 |
写在最后
感谢大家的阅读,如有不足请各位批评与指正。