client/server concepts

第一章:


客户端/服务器  概念


这个章节讨论了MYSQL的客户端/服务器结构和基本的调用客户端程序


这个章节覆盖以下几个主题:


.  一般的MYSQL结构


.  命令行语法


.  客户端连接服务器的参数


.  使用选择文件


.  使用SQL模式来控制服务器操作


1.1  一般的MYSQL结构




MYSQL 操作在网络环境使用客户端/服务器结构。换句话说, 一个中间程序作为服务器,


然后各种各样的客户端程序连接到SERVER 来请求


一个MYSQL的安装有以下几个主要部分组成:




MYSQL SERVER 或者叫mysqld 是mysql数据库的server程序






服务器管理访问磁盘和内存里的实际的数据库。 MYSQL SERVER是多线程支持多种同时的客户端连接


客户端可以通过几种协议连接。


为了管理数据库的连接,Mysql服务器提供了模块化的结构,支持多种存储引擎来处理不同类型的表


(比如它提供了事务表和非事务表)




mysqld 产生了几种配置. MYSQL Max 描述了包含一个server 命名为mysqld-max


包含了没有植入non-Max版本的功能,比如支持额外的存储引擎。在Windows,mysqld-nt


和mysql-max-nt 服务器提供支持管道连接在WINDOWS NT,如果指定的安装包括了多服务器程序,


你可以选择一个来运行。


Mysql server 准确的功能配置可能改变经过一段时间,当你下载了一个新的版本。






检查文档是明智的,为了考试的目的,前面描述的信息足够了。




当你阅读这个概要的时候,请记住server和host的区别。server 是一个软件(MYSQL 服务器程序 mysqld)


server的特性包括它的版本号,哪个功能什么时候加入和去除的,到目前为止。




host 是物理主机 用于server 程序运行




客户端程序:




这些程序用于和server通讯来操作数据库的信息  MYSQL 提供了几种客户端


MYSQL Query 浏览器和MYSQL 管理器是图形前端






mysql 是命令行程序作为文本前端,它用于执行查询和查看结果






另外一些命令行工具 包括mysqlimport 用于导入数据文件




mysqldump  用于备份




mysqladmin 用于server 管理


mysqlcheck 用于校验数据文件的一致性




MYSQL 非客户端的实用工具,这些程序是单独运行的 


他们不通过建立连接来操作




myisamchk 是一个例子.它对表进行检查和修复操作。


另外一个程序是myisampack  创建压缩的只读的MyISAM 表。




所有的公用程序操作通过直接访问MyISAM表文件,不依赖mysqld 数据库服务器








MYSQL 运行在各种各样的Windows Unix 和Linux 但是client/server 通讯是不限制于环境的


所有的计算机运行相同的操作系统。客户端程序可以连接到server 运行在同样的host或者不同的host,




客户端和server 主机 没有必要是相同的操作系统。




1.2 调用客户端程序


Mysql 客户端程序可以被调用从客户比如从Windows的控制台提示符或者Unix shell 提示符


当你调用客户端程序,你可以指定选项来控制行为.选项可以从选项文件中取得。




一些选项告诉程序 如何连接到Myql Server,另外一些选项告诉程序执行的内容。


你也可以为图形客户端程序比如MYSQL QUERY和MYSQL Administrator 指定连接的参数




这个选项讨论下面相关的主题:




指定选项的一般语法




指定连接参数的选项




指定选项在选项文件里


在这个章节的例子都是使用mysql客户端程序,但是一般的原理应用到其他MYSQL客户端命令行也行






决定MYSQL 程序支持的选项,调用--help选项 比如


shell>mysql --help




查看程序的版本,使用--version选项。


shell>mysql --version


1.2.1  一般的语法命令选项


MYSQL 程序有2类选项:






长选项 包括一个单词前的双破折号




短选项包括一个字母前的单破折号


shell>mysql --version


shell> mysql -v




选项是敏感的情况。 --version 被MYSQL客户端程序识别


但是字母大小写变化 比如 --Version 或者 --VERSION 是不可以的 




但是短写也可以 比如-V和-v 都是合法的选项 但是表示不同的事情。




一些选项后面跟着值.比如,当你指定--host或者-h选项时表明运行MYSQL SERVER的机器HOST




你必须跟着机器的主机名。对于一个长的选项,单独的选项和=的值。




对于短的选项,选项和值可以不用空格隔开  下面3种命令都是相等的


每个都指定了myhost.example.com 作为运行MYSQL server的机器名字


在许多例子中,如果你不准确的指定选项,一个程序使用一个默认值。这个使得调用客户端程序变得简单




因为你只要指定那些默认值是不合适的选项。




比如,默认的server 主机名是localhost  






如果MYSQL server 你要连接的是放在本机上,你不需要指定--host 或者-h 选项。






1.2.2  连接参数选项


连接到MYSQL SERVER通过客户端程序,客户端程序必须知道mysql 服务器运行在哪个主机上。




一个连接 可能被建立到mysql server 在同一个主机上,或者server运行在不同的主机上。






为了连接到MYSQL SERVER,你必须制定连接到server的用户名和密码。






每个MYSQL 客户端有它自己的参数选型,但是所有的命令行客户单支持一组公用的选项来连接


到MYSQL server.




这个章节描述了连接参数的选项,如何去使用它们当默认值不合适的时候,这个讨论列出了每个


长选项和短选项格式 也列出了默认值。






主要的选项是连接到SERVER 指定的连接类型 确定MYSQL账号,下面的表格总结了2类选项




--protocol 选项,如果指定,明确的选择连接的协议,客户端程序可以连接到SERVER


(如果缺乏--protocol选项,那么用于连接的协议取决于隐含的基于SERVER 主机名值和客户端


操作系统 稍后讨论).--protocol 允许的值在下面的表格中列出:




--protocol     Value       Connection Protocol          Allowable Operating Systems




tcp                        TCP/IP 连接到本地或者远程           ALL


socket                   Unix socket file connection 
                         to local server                      Unix only


pipe                        Named-pipe connection to          Windows only


                             local server 


memory                        Shared-memory connection to       windows only
                              local server 






如列表中显示那样,TCP/IP 是最通用的协议。它可以用于连接到本地或远程的SERVERS




支持所有的操作系统。其他的协议可能只能用于连接到本地服务器,




他们都是操作系统指定的,默认不能被启动。






下面列出的是描述其他的连接参数,描述表明参数是怎么影响连接使用的,




但是注意值产生影响只有当--protocol 选择没有指定。


--host =host_name or -h host_name


这个选项指定了 MYSQL SERVER 运行的机器,这个值可以是主机名或者一个IP地址。




主机名 localhost 意味着local host 在Unix 上,localhost 是作为指定的方式对待。






-h 墨汁值是localhost




--port=port_number 或者 -P 端口号




这个选项表明连接的MYSQL 服务器的端口号 ,它只用于TCP/IP连接




默认端口号是3306






2个选项提供认证信息,它们是username 和password,你需要访问的服务器。






--user=user_name or  -u user_name




这个选项指定了MYSQL 账号的用户,决定了哪个账号应用, MySQL server使用用户名来连接




在UNIX上 客户端程序使用你的系统登录账户作为默认的MYSQL账号名字




--password=pass_value 或者-ppass_value


这些选项指定了MYSQL 账户的密码。这个没有默认的密码.如果你忽略这个选项,




你的MYSQL 账号必须设置为不用密码连接




MYSQL 账号通过create user 和grant 语句创建




Password 选项是指定了2种方式,相比另外的连接参数选项:




你可以忽略 密码值在name后,这个不同于其他的连接参数选项,每个需要一个值在选项名字后。






如果你忽略了 password的值 客户端程序会给你交互式的提示 


shell> mysql -p


Enter password:




但你看到password:提示符 输入你的密码按回车,密码不会显示出来 防止其他人看到。






如果你使用短格式的密码选项 -p  ,在命令行上指定password的值


在-p和值之间没有空格 也就是说-ppass_val是正确的,但是-p pass_val是不正确的。




这个不同于其他的短格式的连接参数选项。




如果你有一个指定的存放密码的文件,但是你要连接使用账号但是不用密码


指定-p 或者 --password 在命令行没有指定password的值


然后按下 出现password:提示


另外的选项影响连接在客户端和服务器是 --compress 或者-c 选项


这个选项导致数据从客户端发送到服务器的数据在传输前被压缩


这里有一些例子 显示如何指定特定连接的参数:




连接到server 使用默认的hostname 使用username 不使用password:






1.2.3 使用可选的文件


作为一个可选择的特定选项,你可以把他们放到一个文件里,标准的MYSQL客户端程序


寻找可选的文件在启动的时候,使用任何相关的选项来找




把一个选项存入到一个文件 节省了你的时间,你不需要每次在命令行指定






选项在选项文件里被组织成组,在每个组之前有个[group-name]来命名组








典型的, 组名是程序的名字,选项组的应用。比如,the [mysql]和[mysqldump]组


是选项用于mysql和mysqldump。特定的组 叫做[client]可以用于指定选型,你可以让所有的客户端程序来使用。




一个公用的使特定[client] 组是指定连接参数




编写一个选项在一个选项文件里,使用一个长选项格式在命令行,但是忽略前面的波折号


如果一个选项占据一个值,空格是循序的  






这里有一些例子关于选项文件:


[client]
host=myhost.example.com
compress


[mysql]
safe-updates






在这个例子中,[client] 组指定server hostname 和表明客户端/服务器协议需要使用压缩用于传输






这个组里的选项应用于所有的标准客户端。


[mysql]组应用于mysql程序, 这个组表明mysql必须使用--safe-updates选型


(mysql 使用选项用于[client]和[mysql]组,因此mysql会使用所有3个选项)






这个可选择的文件的位置依赖于操作系统:


在UNIX上,文件是在/etc/my.cnf 作为一个全局的选项文件用于所有的用户。



















































































原文地址:https://www.cnblogs.com/hzcya1995/p/13351791.html