📄 manual_tools.html
字号:
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>MySQL中文参考手册-12 MySQL实用程序</title>
<style type="text/css">
<!--
.p14{font-size:14.8px;font-family:宋体;line-height:14pt;}
a:hover{color:red;}
a.t1:visited{color:red;}
-->
</style>
</head>
<body BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#101090" VLINK="#7030B0" class="p4">
<h1><img src="Img/mysql-logo.gif" alt="mysql-logo.gif (3082 bytes)" WIDTH="127" HEIGHT="60"><font color="#FF0000">MySQL中文参考手册</font></h1>
<p>译者:晏子 <a href="mailto:(clyan@sohu.com">(clyan@sohu.com</a>)
主页:<a href="http://linuxdb.yeah.net">http://linuxdb.yeah.net</a></p>
<hr>
<p><a HREF="manual_Introduction.html">第一章</a>, <a HREF="manual_MySQL_Benchmarks.html">前一章</a>, <a HREF="manual_Maintenance.html">下一章</a>,
<a HREF="manual_Concept_Index.html">最后一章</a>,<a HREF="manual_toc.html">目录</a>.
</p>
<hr>
<h1><a NAME="Tools" HREF="manual_toc.html#Tools">12 MySQL实用程序</a></h1>
<h2><a NAME="Programs" HREF="manual_toc.html#Programs">12.1 各种MySQL程序概述</a></h2>
<p>所有使用<code>mysqlclient</code>客户库与服务器通信的<strong>MySQL</strong>客户使用下列环境变量:
</p>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><strong>名字</strong> </td>
<td><strong>说明</strong> </td>
</tr>
<tr>
<td><code>MYSQL_UNIX_PORT</code> </td>
<td>缺省套接字;用于连接<code>localhost</code> </td>
</tr>
<tr>
<td><code>MYSQL_TCP_PORT</code> </td>
<td>缺省 TCP/IP 端口</td>
</tr>
<tr>
<td><code>MYSQL_PWD</code> </td>
<td>缺省口令</td>
</tr>
<tr>
<td><code>MYSQL_DEBUG</code> </td>
<td>调试时调试-踪迹选项</td>
</tr>
<tr>
<td><code>TMPDIR</code> </td>
<td>临时表/文件被创建的目录</td>
</tr>
</table>
<p>使用<code>MYSQL_PWD</code>是不安全的。见<a HREF="manual_Privilege_system.html#Connecting">6.3 与MySQL服务器连接</a>。 </p>
<p><a NAME="IDX648"></a><tt>“mysql”</tt>客户使用<code>MYSQL_HISTFILE</code>环境变量中命名的文件来保存命令行历史,历史文件的缺省值是<tt>“$HOME/.mysql_history”</tt>,这里<code>$HOME</code>是<code>HOME</code>环境变量的值。
</p>
<p>所有<strong>MySQL</strong>程序取许多不同的选项,然而,每个<strong>MySQL</strong>程序提供一个<code>--help</code>选项,你可以使用它得到程序不同选项的完整描述。例如,试一试<code>mysql
--help</code>。 </p>
<p>你能用一个选项文件覆盖所有的标准客户程序的缺省选项。见<a HREF="manual_Installing.html#Option_files">4.15.4 选择文件</a>。 </p>
<p>下表简单地描述<strong>MySQL</strong>程序:
<dl COMPACT="manual_Installing.html#Option_files">
<dt><code>myisamchk</code> </dt>
<dd><a NAME="IDX655"></a>描述、检查、优化和修复<strong>MySQL</strong>表的使用程序。因为<code>myisamchk</code>有许多功能,它在其自己的章节中描述。见<a HREF="manual_Maintenance.html#Maintenance">13 维护MySQL安装</a>。 <a NAME="IDX656"></a>
</dd>
<dt><code>make_binary_release</code> </dt>
<dd>制作一个编译<strong>MySQL</strong>的一个二进制的版本。这能用FTP传送到在<code>ftp.tcx.se</code><tt>网站的“/pub/mysql/Incoming”</tt>以方便其它<strong>MySQL</strong>用户。
<a NAME="IDX657"></a> </dd>
<dt><code>msql2mysql</code> </dt>
<dd>一个外壳脚本,转换<code>mSQL</code>程序到<strong>MySQL</strong>。它不能处理所有的情况,但是当转换时,它给出一个好起点。
<a NAME="IDX658"></a> <a NAME="IDX659"></a> </dd>
<dt><code>mysql</code> </dt>
<dd><code>mysql</code>是一个简单的SQL外壳(具有GNU<code> readline</code> 能力),它支持交互式和非交互式使用。当交互地使用时,查询结果以ASCII表的格式被表示。当非交互地使用时(例如,作为一个过滤器),结果是以定位符分隔的格式表示。(输出格式可以使用命令行选项改变)你可以简单地象这样运行脚本:
<pre>shell> mysql database < script.sql > output.tab
</pre>
<p>如果你在客户中由于内存不足造成问题,使用<code>--quick</code>选项!这迫使<code>mysql</code>使用<code>mysql_use_result()</code>而非<code>mysql_store_result()</code>来检索结果集合。
<a NAME="IDX660"></a> </p>
</dd>
<dt><code>mysqlaccess</code> </dt>
<dd>一个脚本,检查对主机、用户和数据库组合的存取权限。 <a NAME="IDX661"></a> </dd>
<dt><code>mysqladmin</code> </dt>
<dd>执行管理操作的实用程序,例如创建或抛弃数据库,再装载授权表,清洗表到磁盘中和再打开日志文件。<code>mysqladmin</code>也可以被用来从服务器检索版本,进程和状态信息。见<a HREF="manual_Tools.html#mysqladmin">12.2 管理一个 MySQL 服务器</a>。</dd>
<dt><code>mysqlbug</code> </dt>
<dd><strong>MySQL</strong>错误报告脚本。当填写一份错误报告到<strong>MySQL</strong>邮件列表时,应该总是使用该脚本。
<a NAME="IDX663"></a> </dd>
<dt><code>mysqld</code> </dt>
<dd>SQL守护进程。它应该一直在运行。 <a NAME="IDX664"></a> </dd>
<dt><code>mysqldump</code> </dt>
<dd>以SQL语句或定位符分隔的文本文件将一个<strong>MySQL</strong>数据库倾倒一个文件中。这是最早由Igor
Romanenko编写的自由软件的增强版本。见<a HREF="manual_Tools.html#mysqldump">12.3
从MySQL数据库和表倾倒结构和数据</a>。 <a NAME="IDX665"></a></dd>
<dt><code>mysqlimport</code> </dt>
<dd>使用<code>LOAD DATA INFILE</code>将文本文件倒入其各自的表中。见<a HREF="manual_Tools.html#mysqlimport">12.4 从文本文件导入数据</a>。 <a NAME="IDX666"></a> </dd>
<dt><code>mysqlshow</code> </dt>
<dd>显示数据库,表,列和索引的信息。 <a NAME="IDX667"></a> </dd>
<dt><code>mysql_install_db</code> </dt>
<dd>以缺省权限创建<strong>MySQL</strong>授权表。这通常仅被执行一次。就是在系统上第一次安装<strong>MySQL</strong>时。
<a NAME="IDX668"></a> </dd>
<dt><code>replace</code> </dt>
<dd>一个实用程序,由<code>msql2mysql</code>使用,但是有更一般的适用性。<code>replace</code>改变文件中或标准输入上的字符串。使用一台有限状态机首先匹配更长的字符串,能被用来交换字符串。例如,这个命令在给定的文件中交换<code>a</code>和<code>b</code>:
<pre>shell> replace a b b a -- file1 file2 ...
</pre>
</dd>
<dt><code>safe_mysqld</code> </dt>
<dd>一个脚本,用某些更安全的特征启动<code>mysqld</code>守护进程,例如当一个错误发生时,重启服务器并且记载运行时刻信息到一个日志文件中。
</dd>
</dl>
<h2><a NAME="mysqladmin" HREF="manual_toc.html#mysqladmin">12.2 管理一个MySQL服务器</a></h2>
<p>用于执行管理性操作。语法是: </p>
<pre>shell> mysqladmin [OPTIONS] command [command-option] command ...
</pre>
<p>通过执行<code>mysqladmin --help</code>,你可以得到你<code>mysqladmin</code>的版本所支持的一个选项列表。
</p>
<p>目前<code>mysqladmin</code>支持下列命令: </p>
<table border="1" width="100%" class="p4">
<tr>
<td>create databasename </td>
<td>创建一个新数据库</td>
</tr>
<tr>
<td>drop databasename </td>
<td>删除一个数据库及其所有表</td>
</tr>
<tr>
<td>extended-status </td>
<td>给出服务器的一个扩展状态消息</td>
</tr>
<tr>
<td>flush-hosts </td>
<td>洗掉所有缓存的主机</td>
</tr>
<tr>
<td>flush-logs </td>
<td>洗掉所有日志 </td>
</tr>
<tr>
<td>flush-tables </td>
<td>洗掉所有表 </td>
</tr>
<tr>
<td>flush-privileges </td>
<td>再次装载授权表(同reload) </td>
</tr>
<tr>
<td>kill id,id,... </td>
<td>杀死mysql线程 </td>
</tr>
<tr>
<td>password </td>
<td>新口令,将老口令改为新口令</td>
</tr>
<tr>
<td>ping </td>
<td>检查mysqld是否活着 </td>
</tr>
<tr>
<td>processlist </td>
<td>显示服务其中活跃线程列表</td>
</tr>
<tr>
<td>reload </td>
<td>重载授权表 </td>
</tr>
<tr>
<td>refresh </td>
<td>洗掉所有表并关闭和打开日志文件</td>
</tr>
<tr>
<td>shutdown </td>
<td>关掉服务器 </td>
</tr>
<tr>
<td>status </td>
<td>给出服务器的简短状态消息</td>
</tr>
<tr>
<td>variables </td>
<td>打印出可用变量</td>
</tr>
<tr>
<td>version </td>
<td>得到服务器的版本信息</td>
</tr>
</table>
<p>所有命令可以被缩短为其唯一的前缀。例如: </p>
<pre>shell> mysqladmin proc stat
+----+-------+-----------+----+-------------+------+-------+------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+-------------+------+-------+------+
| 6 | monty | localhost | | Processlist | 0 | | |
+----+-------+-----------+----+-------------+------+-------+------+
Uptime: 10077 Threads: 1 Questions: 9 Slow queries: 0 Opens: 6 Flush tables: 1
Open tables: 2 Memory in use: 1092K Max memory used: 1116K
</pre>
<p><code>mysqladmin status</code>命令结果有下述列:</p>
<table border="1" class="p4" width="100%">
<tr>
<td>Uptime </td>
<td><strong>MySQL</strong>服务器已经运行的秒数</td>
</tr>
<tr>
<td>Threads </td>
<td>活跃线程(客户)的数量 </td>
</tr>
<tr>
<td>Questions </td>
<td>从<code>mysqld</code>启动起来自客户问题的数量 </td>
</tr>
<tr>
<td>Slow queries </td>
<td>已经超过<code>long_query_time</code>秒的查询数量 </td>
</tr>
<tr>
<td>Opens </td>
<td><code>mysqld</code>已经打开了多少表 </td>
</tr>
<tr>
<td>Flush tables </td>
<td><code>flush ...</code>, <code>refresh</code>和<code>reload</code>命令数量 </td>
</tr>
<tr>
<td>Open tables </td>
<td>现在被打开的表数量</td>
</tr>
<tr>
<td>Memory in use </td>
<td>由mysqld代码直接分配的内存(只有在<strong>MySQL</strong>用--with-debug编译时可用)
</td>
</tr>
<tr>
<td>Max memory used </td>
<td>由mysqld代码直接分配的最大内存(只有在<strong>MySQL</strong>用--with-debug编译时可用)</td>
</tr>
</table>
<h2><a NAME="mysqldump" HREF="manual_toc.html#mysqldump">12.3 从MySQL数据库和表中倒出结构和数据</a></h2>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -