仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 846|回复: 8
打印 上一主题 下一主题

[学习教程] 发布详解MySQL与客户机的毗连

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 20:12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。本文经由过程演示怎样利用MySQL客户程序与数据库服务器毗连。mysql(偶然称为“终端监督器”或只是“监督”)是一个交互式程序,同意你毗连一个MySQL服务器,运转查询并观察了局。mysql能够用于批形式:你事后把查询放在一个文件中,然后告知mysql实行文件的内容。利用mysql的两个办法都在这里触及。
为了看清由mysql供应的一个选择项目表了,用--help选项挪用它:
shell>mysql--help
本章假定mysql已被安装在你的呆板上,而且有一个MySQL服务器你能够毗连。假如这不是真的,联系你的MySQL办理员。(假如你是办理员,你将必要就教这本手册的其他章节。)
创建和中断与服务器的毗连
1、怎样利用客户机创建毗连
为了毗连到服务器,从外壳程序(即从UNIX提醒符,或从Windows下的DOS把持台)激活mysql程序。命令以下:
shell>mysql
又如,间接毗连一个数据库:
shell>mysqldb_name
个中的“$”在本书中代表外壳程序提醒符。这是UNIX尺度提醒符之一;另外一个为“#”。在Windows下,提醒符相似“c:>”。
2、客户机最常利用的选项:主机、用户和暗码
为了毗连服务器,当你挪用mysql时,你一般将必要供应一个MySQL用户名和极可能,一个口令。假如服务器运转在不是你登录的一台呆板上,你也将必要指定主机名。接洽你的办理员以找出你应当利用甚么毗连参数举行毗连(即,谁人主机,用户名字和利用的口令)。一旦你晓得准确的参数,你应当能象如许毗连:
shell>mysql-hhost-uuser-p
EnterpassWord:********
********代表你的口令;当mysql显现Enterpassword:提醒时输出它。
在刚入手下手进修MySQL时,也许会为其平安体系而懊恼,由于它使您难于做本人想做的事。(您必需获得创立和会见数据库的权限,任什么时候候毗连到数据库都必需给出本人的名字和口令。)可是,在您经由过程数据库录进和利用本人的纪录后,意见就会即刻改动了。这时候您会很浏览MySQL制止了其别人窥视(大概更卑劣一些,损坏!)您的材料。
上面先容选项的寄义:
-hhost_name(可选择情势:--host=host_name)
但愿毗连的服务器主机。假如此服务器运转在与mysql不异的呆板上,这个选项一样平常可省略。
-uuser_name(可选择的情势:--user=user_name)
您的MySQL用户名。假如利用UNIX且您的MySQL用户名与注册名不异,则能够省往这个选项;mysql将利用您的注册名作为您的MySQL名。
在Windows下,缺省的用户名为ODBC。这大概纷歧定十分有效。可在命令行上指定一个名字,也能够经由过程设置USER变量在情况变量中设置一个缺省名。如用以下set命令指定paul的一个用户名:
-p(可选择的情势:--password)
这个选项告知mysql提醒键进您的MySQL口令。注重:可用-pyour_password的情势(可选择的情势:--password=your_password)在命令行上键进您的口令。可是,出于平安的思索,最好不要如许做。选择-p不跟口令告知mysql在启动时提醒您键出口令。比方:
在看到Enterpassword:时,键出口令便可。(口令不会显到屏幕,以避免给他人看到。)请注重,MySQL口令纷歧定必需与UNIX或Windows口令不异。
假如完整省略了-p选项,mysql就以为您不必要口令,不作提醒。
请注重:-h和-u选项与跟在它们前面的词有关,不管选项和后跟的词之间是不是有空格。而-p却不是如许,假如在命令行上给出口令,-p和口令之间必定不加空格。
比方,假定我的MySQL用户名和口令分离为tom和secret,但愿毗连到在我注册的统一呆板上运转的服务器上。上面的mysql命令能完成这项事情:
shell>mysqlCutom-p
在我键进命令后,mysql显现Enterpassword:提醒键出口令。然后我键出口令(******标明我键进了secret)。
假如统统顺遂的话,mysql显现一串动静和一个“mysql>”提醒,暗示它正守候我公布查询。完全的启动序列以下所示:
为了毗连到在其他某个呆板上运转的服务器,必要用-h指定主机名。假如该主机为mysql.domain.net,则响应的命令以下所示:
shell>mysqlChmysql.domain.netCutom-p
在前面的申明mysql命令行的多半例子中,为复杂起见,我们盘算省往-h、-u和-p选项。而且假定您将会供应任何所需的选项。
有良多设置账号的办法,从而不用在每次运转mysql时都在毗连参数中举行键进。这个成绩在后面已先容过,你只需在选项文件中供应参数,详细请看3.2.2。您大概会但愿如今就跳到该节,以便找到一些更容易于毗连到服务器的举措。
3、停止会话
在创建了服务器的一个毗连后,可在任什么时候候键进以下命令来停止会话:
quitexit
还能够键进Control-D来加入,最少在UNIX上能够如许。
使用选项文件简化毗连
在激活mysql时,有大概必要指定诸如主机名、用户名或口令如许的毗连参数。运转一个程序必要做良多输出事情,这很快就会让人腻烦。使用选项文件能够存储毗连参数,削减输出事情。
比方,关于利用mysqladmin客户机来办理数据库,那末你很快会腻烦每次利用这么长的命令行:
shell>mysqlCurootCpvarialbles
Enterpassword:*********

你大概会选择利用全局选项文件来存贮你的参数:
[mysqladmin]
#也能够用[client],为一切的客户机存储参数
user=root
password=yourpassword

如许实行mysqladminvariables就不会显现任何存储回绝的毛病,而且你能够用root用户身份保护数据库了。
且慢,你立即会发明,如许做是一个很年夜的平安毛病,由于任何能够读取选项文件的用户都能够取得你的暗码!办理办法是,只供应password选项不供应暗码:
[mysqladmin]
user=root
password

如许你在命令行实行时,会提醒你数据暗码:
shell>mysqlvarialbles
Enterpassword:*********

可是,你不克不及不供应password选项,不然你仍是要在命令行中供应-p选项。
使用mysql的输出行编纂器
mysql具有内建的GNUReadline库,同意对输出行举行编纂。能够对以后录进的行举行处置,或修改之前输出的行偏重新实行它们(原样实行或做进一步的修正后实行)。在录进一行并发明毛病时,这长短常便利的;您能够在按Enter键前,外行内退格并举行修改。假如录进了一个有错的查询,那末能够挪用该查询并对其举行编纂以办理成绩,然后再从头提交它。(假如您在一行上键进了全部查询,这是最简单的办法。)
表1中列出了一些十分有效的编纂序列,除此表中给出的之外,另有很多输出编纂命令。使用因特网搜刮引擎,应当可以找到Readline手册的联机版本。此手册也包括在Readline分发包中,可在http://www.gnu.org/的GnuWeb站点失掉。
表1mysql输出编纂命令

键序列说明
Up箭头,Ctrl-p
Down箭头,Ctrl-N
Left箭头,Ctrl-B
Right箭头,Ctrl-F
EscapeCtrl-B
EscapeCtrl-F
Ctrl-A
Ctrl-E
Ctrl-D
Delete
EscapeD
EscapeBackspace
Ctrl-K
Ctrl-_调后面的行
调下一行
光标左移(向后)
光标右移(向前)
向后移一个词
向前移一个词
将光标移到行头
将光标移到行尾
删除光标下的字符
删除光标右边的字符
删词
删除光标右边的词
删除光标到行尾的一切字符
取消最初的变动;能够反复

上面的例子形貌了输出编纂的一个复杂的利用。假定用mysql输出了以下查询:
假如在按Enter前,已注重到将“PResident”错拼成了“persident”,则可按左箭头或Ctrl-B屡次挪动光标到“s”的右边。然后按Delete两次删除“er”,键进“re”更正毛病,并按Enter公布此查询。假如没注重到错拼就按了Enter,也不会有成绩。在mysql显现了毛病动静后,按上箭头或Ctrl-P修改该行,然后对其举行编纂。
输出行编纂在mysql的Windows版中不起感化,可是可从MySQLWeb站点获得收费的cygwin_32客户机分发包。在该分发包中的mysqlc程序与mysql一样,但它撑持输出行编纂命令。
批处置形式毗连
在后面的章节中,你交互式地利用mysql输出查询而且检察了局。你也能够以批形式运转mysql。为了做到这些,把你想要运转的命令放在一个文件中,然后告知mysql从文件读取它的输出:
shell>mysql<batch-file

假如你必要在命令行上指定毗连参数,命令大概看起来像如许:
shell>mysql-hhost-uuser-p<batch-file
Enterpassword:********

当你如许利用mysql时,你正在创立一个剧本文件,然后实行剧本。
为何要利用一个剧本?有良多缘故原由:
假如你反复地运转查询(好比说,天天或每周),把它做成一个剧本使得你在每次实行它时制止从头键进。
你能经由过程拷贝并编纂剧本文件从相似的现有的查询天生一个新查询。
当你正在开辟查询时,批形式也是很有效的,出格对多行命令或多行语句序列。假如你犯了一个毛病,你不用从头打进一切统统,只需编纂你的剧本来更正毛病,然后告知mysql再次实行它。
假如你有一个发生良多输入的查询,你能够经由过程一个分页器而不是盯着它翻屏到你屏幕的顶端来运转输入:
$mysql<batch-file|more
你能捕获输入到一个文件中举行更一步的处置:
shell>mysql<batch-file>mysql.out
你能够分发剧本给别的的人,因而他们也能运转命令。
一些情形不同意交互地利用,比方,当你从一个cron义务中运转查询时。在这类情形下,你必需利用批形式。
当你以批形式运转mysql时,比起你交互地利用它时,其缺省输入格局是分歧的(更简明些)。比方,当交互式运转SELECTDISTINCTspeciesFROMpet时,输入看起来像如许:
+---------+
|species|
+---------+
|bird|
|cat|
|dog|
|hamster|
|snake|
+---------+
可是当以批形式运转时,像如许:
species
bird
cat
dog
hamster
snake
假如你想要在批形式中失掉交互的输入格局,利用mysql-t。为了回显以输入被实行的命令,利用mysql-vvv。
总结
本章中枚举了客户机与服务器毗连的几种情形,读者必要注重的是上面几点:
1、怎样供应参数,和参数的意义
2、怎样让客户机提醒输出暗码
3、交互形式和批处置形式
4、mysql客户机的行编纂功效
业界普遍的声音认为:“MySQL是一个可靠的数据库系统,MySQL学习教程无论是在嵌入式或大型群集系统的部署中,还是在基于Web的应用程序领域。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-18 18:42:28 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
变相怪杰 该用户已被删除
板凳
发表于 2015-1-25 13:29:24 | 只看该作者
比如日志传送、比如集群。。。
地板
 楼主| 发表于 2015-2-2 22:17:36 | 只看该作者
大家注意一点。如下面的例子:
因胸联盟 该用户已被删除
5#
发表于 2015-2-8 13:32:36 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
再见西城 该用户已被删除
6#
发表于 2015-2-25 17:22:12 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
小魔女 该用户已被删除
7#
发表于 2015-3-8 01:25:04 | 只看该作者
所以你总能得到相应的升级版本,来满足你的需求。
小女巫 该用户已被删除
8#
发表于 2015-3-15 20:26:29 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
兰色精灵 该用户已被删除
9#
发表于 2015-3-22 04:09:34 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 03:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表