为了看清由mysql提供个选择项目表了用--help选项它:
shell> mysql --help
本章假定mysql已经被安装在你机器上并且有个MySQL服务器你可以连接如果这不是真联络你MySQL管理员(如果你是管理员你将需要请教这本手册其他章节)
建立和中止和服务器连接
1、如何使用客户机建立连接
为了连接到服务器从外壳(即从 UNIX 提示符或从 Windows 下 DOS 控制台)激活 mysql 命令如下:
shell>mysql
又如直接连接个数据库:
shell> mysql db_name
其中“$”在本书中代表外壳提示符这是 UNIX 标准提示符的;另个为“#”在 Windows 下提示符类似 “c:\>”
2、客户机最常使用选项:主机、用户和密码
为了连接服务器当你mysql时你通常将需要提供个MySQL用户名和很可能个口令如果服务器运行在不是你登录台机器上你也将需要指定主机名联系你管理员以找出你应该使用什么连接参数进行连接(即那个主机用户名字和使用口令)旦你知道正确参数你应该能象这样连接:
shell> mysql -h host -u user -p
Enter password: ********
********代表你口令;当mysql显示Enter password:提示时输入它
在刚开始学习 MySQL 时大概会为其安全系统而烦恼它使您难于做自己想做事(您必须取得创建和访问数据库权限任何时候连接到数据库都必须给出自己名字和口令)但是在您通过数据库录入和使用自己记录后看法就会马上改变了这时您会很欣赏 MySQL 阻止了其他人窥视(或者更恶劣些破坏!)您资料
下面介绍选项含义:
-h host_name(可选择形式:--host=host_name)
希望连接服务器主机如果此服务器运行在和 mysql 相同机器上这个选项般可省略
-u user_name(可选择形式:--user=user_name)
您 MySQL 用户名如果使用 UNIX 且您 MySQL 用户名和注册名相同则可以省去这个选项;mysql 将使用您注册名作为您 MySQL 名
在 Windows 下缺省用户名为 ODBC这可能不定非常有用可在命令行上指定个名字也可以通过设置 USER 变量在环境变量中设置个缺省名如用下列 命令指定 paul 个用户名:
-p(可选择形式:--password)
这个选项告诉 mysql 提示键入您 MySQL 口令注意:可用 -pyour_password 形式(可选择形式:--password=your_password)在命令行上键入您口令但是出于安全考虑最好不要这样做选择 -p 不跟口令告诉 mysql 在启动时提示您键入口令例如:
在看到 Enter password: 时键入口令即可(口令不会显到屏幕以免给别人看到)请注意MySQL 口令不定必须和 UNIX 或 Windows 口令相同
如果完全省略了 -p 选项mysql 就认为您不需要口令不作提示
请注意:-h 和 -u 选项和跟在它们后面词有关无论选项和后跟词的间是否有空格而 -p 却不是这样如果在命令行上给出口令-p 和口令的间定不加空格
例如假定我 MySQL 用户名和口令分别为 tom 和 secret希望连接到在我注册同机器上运行服务器上下面 mysql 命令能完成这项工作:
shell>mysql –u tom -p
在我键入命令后mysql 显示 Enter password: 提示键入口令然后我键入口令(****** 表明我键入了 secret)
如果切顺利话mysql 显示串消息和个“mysql>”提示表示它正等待我发布查询完整启动序列如下所示:
为了连接到在其他某个机器上运行服务器需要用 -h 指定主机名如果该主机为 mysql.do.net则相应命令如下所示:
shell>mysql –h mysql.do.net –u tom -p
在后面介绍说明 mysql 命令行多数例子中为简单起见我们打算省去 -h、-u 和 -p 选项并且假定您将会提供任何所需选项
有很多设置账号思路方法从而不必在每次运行 mysql 时都在连接参数中进行键入这个问题在前面已经介绍过你只需在选项文件中提供参数具体请看3.2.2您可能会希望现在就跳到该节以便找到些更易于连接到服务器办法
3、结束会话
在建立了服务器个连接后可在任何时候键入下列命令来结束会话:
quit exit
还可以键入 Control-D 来退出至少在 UNIX 上可以这样
利用选项文件简化连接
在激活 mysql 时有可能需要指定诸如主机名、用户名或口令这样连接参数运行个需要做很多输入工作这很快就会让人厌烦利用选项文件可以存储连接参数减少输入工作
例如对于使用mysqladmin客户机来管理数据库那么你很快会厌烦每次使用这么长命令行:
shell>mysql –u root –p varialbles
Enter password: *********
你也许会选择使用全局选项文件来存贮你参数:
[mysqladmin]
#也可以用[client]为所有客户机存储参数
user=root
password=yourpassword
这样执行mysqladmin variables就不会显示任何存储拒绝并且你可以用root用户身份维护数据库了
且慢你立刻会发现这样做是个很大安全漏洞任何可以读取选项文件用户都可以获得你密码!解决思路方法是只提供password选项不提供密码:
[mysqladmin]
user=root
password
这样你在命令行执行时会提示你数据密码:
shell>mysql varialbles
Enter password: *********
但是你不能不提供password选项否则你还是要在命令行中提供-p选项
利用 mysql 输入行编辑器
mysql 具有内建 GNU Readline 库允许对输入行进行编辑可以对当前录入行进行处理或调出以前输入行并重新执行它们(原样执行或做进步修改后执行)在录入行并发现时这是非常方便;您可以在按 Enter 键前在行内退格并进行修正如果录入了个有错查询那么可以该查询并对其进行编辑以解决问题然后再重新提交它(如果您在行上键入了整个查询这是最容易思路方法)
表1中列出了些非常有用编辑序列除了此表中给出以外还有许多输入编辑命令利用因特网搜索引擎应该能够找到 Readline手册联机版本此手册也包含在 Readline 分发包中可在 http://www.gnu. org/ Gnu Web 站点得到
表1 mysql 输入编辑命令
键 序 列 说 明
Up 箭头Ctrl-p
Down 箭头Ctrl-N
Left 箭头Ctrl-B
Right 箭头Ctrl-F
Escape Ctrl-B
Escape Ctrl-F
Ctrl-A
Ctrl-E
Ctrl-D
Delete
Escape D
Escape Backspace
Ctrl-K
Ctrl-_ 调前面行
调下行
光标左移(向后)
光标右移(向前)
向后移个词
向前移个词
将光标移到行头
将光标移到行尾
删除光标下
删除光标左边
删词
删除光标左边词
删除光标到行尾所有
撤消最后更改;可以重复
下面例子描述了输入编辑个简单使用假定用 mysql 输入了下列查询:
如果在按 Enter 前已经注意到将“president”错拼成了“persident”则可按左箭头或 Ctrl-B 多次移动光标到“s”左边然后按 Delete 两次删除“er”键入“re”改正并按 Enter 发布此查询如果没注意到错拼就按了 Enter也不会有问题在 mysql 显示了消息后按上箭头或 Ctrl-P 调出该行然后对其进行编辑
输入行编辑在 mysql Windows 版中不起作用但是可从 MySQL Web 站点取得免费 cygwin_32 客户机分发包在该分发包中mysqlc 和 mysql 样但它支持输入行编辑命令
批处理模式连接
在前面章节中你交互式地使用mysql输入查询并且查看结果你也可以以批模式运行mysql为了做到这些把你想要运行命令放在个文件中然后告诉mysql从文件读取它输入:
shell> mysql < batch-file
如果你需要在命令行上指定连接参数命令可能看起来像这样:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
当你这样使用mysql时你正在创建个脚本文件然后执行脚本
为什么要使用个脚本?有很多原因:
如果你重复地运行查询(比如说每天或每周)把它做成个脚本使得你在每次执行它时避免重新键入
你能通过拷贝并编辑脚本文件从类似现有查询生成个新查询
当你正在开发查询时批模式也是很有用特别对多行命令或多行语句序列如果你犯了个你不必重新打入所有切只要编辑你脚本来改正然后告诉mysql再次执行它
如果你有个产生很多输出查询你可以通过个分页器而不是盯着它翻屏到你屏幕顶端来运行输出:
$ mysql < batch-file | more
你能捕捉输出到个文件中进行更步处理:
shell> mysql < batch-file > mysql.out
你可以散发脚本给另外人因此他们也能运行命令
些情况不允许交互地使用例如, 当你从个cron任务中运行查询时在这种情况下你必须使用批模式
当你以批模式运行mysql时比起你交互地使用它时其缺省输出格式是区别(更简明些)例如当交互式运行SELECT DISTINCT species FROM pet时输出看起来像这样:
+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+
但是当以批模式运行时像这样:
species
bird
cat
dog
hamster
snake
如果你想要在批模式中得到交互输出格式使用mysql -t为了回显以输出被执行命令使用mysql -vvv
整理总结
本章中列举了客户机和服务器连接几种情况读者需要注意是下面几点:
1、 如何提供参数以及参数意义
2、 如何让客户机提示输入密码
3、 交互模式和批处理模式
4、 mysql客户机行编辑功能
最新评论