10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.1 mb
PDF (A4)- 41.2 mb
PDF (RPM)- 39.8 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.6 mb
HTML下载(RPM)- 8.1 mb
手册(TGZ)- 260.6 kb
手册(Zip)- 371.7 kb
信息(Gzip)- 3.9 mb
信息(邮政编码)- 3.9 mb
本手册节选

4.5.1.6 mysql客户端提示

本节提供关于更有效使用的技术的信息mysqlmysql操作行为。

  • 输入行编辑

    mysql支持输入行编辑,这使您能够原地修改当前输入行或收回以前的输入行。例如,左箭头而且右箭头键在当前输入行内水平移动,而向上箭头而且向下箭头键在前面输入的行集合中上下移动。退格删除光标之前的字符,并输入新字符,将它们输入到光标位置。按进入线路输入

    在Windows上,编辑键序列与控制台窗口中支持的命令编辑相同。在Unix上,键序列取决于用于构建的输入库mysql(例如,libeditreadline库)。

    10bet官方网站的文档libedit而且readline图书馆可以在网上找到。若要更改给定输入库所允许的键序列集,请在库启动文件中定义键绑定。这是你主目录下的一个文件:.editrclibedit而且.inputrcreadline

    例如,在libedit控制+ W删除当前光标位置和之前的所有内容控制+ U删除整行。在readline控制+ W删除光标和之前的单词控制+ U删除当前光标位置之前的所有内容。如果mysql是用libedit的用户readline这两个键的行为可以将以下行放入.editrc文件(如果需要,创建文件):

    绑定“^W”vi-kill-line-prev

    要查看当前的键绑定集,请暂时放置一行表示only的代码绑定最后.editrcmysql在启动时显示绑定。

    禁用交互历史记录

    向上箭头键使您能够从当前和以前的会话中召回输入行。在共享控制台的情况下,这种行为可能不合适。mysql支持部分或完全禁用交互历史记录,这取决于主机平台。

    在Windows上,历史记录存储在内存中。Alt + F7删除存储在内存中的当前历史缓冲区的所有输入行。它还删除与显示的输入行前面的顺序数字列表F7和召回(按号码)F9.按下键后输入的新输入行Alt + F7重新填充当前历史缓冲区。清除缓冲区不会阻止登录到Windows事件查看器,如果——syslog选项用于启动mysql.关闭控制台窗口还会清除当前历史缓冲区。

    要禁用Unix上的交互历史,首先要删除.mysql_history文件,如果它存在(否则将召回之前的条目)。然后开始mysql——histignore =“*”选项忽略所有新的输入行。要重新启用召回(和日志记录)行为,请重新启动mysql没有选项。

    如果你预防.mysql_history文件不被创建(参见——histignore =“*”开始mysql在客户端中,交互式历史回忆功能被完全禁用。或者,如果您省略——histignore选项,您可以召回在当前会话期间输入的输入行。

    Windows上的Unicode支持

    Windows提供了基于UTF-16LE的api,用于对控制台进行读写;的mysqlWindows客户端能够使用这些api。Windows安装程序在MySQL菜单中创建一个名为MySQL命令行客户端- Unicode.此项调用mysql客户端,属性设置为通过控制台使用Unicode与MySQL服务器通信。

    若要手动利用此支持,请运行mysql在使用兼容的Unicode字体的控制台中,并将默认字符集设置为与服务器通信所支持的Unicode字符集:

    1. 打开控制台窗口。

    2. 转到控制台窗口属性,选择字体选项卡,并选择Lucida console或其他兼容的Unicode字体。这是必要的,因为控制台窗口默认使用DOS光栅字体启动,这对Unicode来说是不够的。

    3. 执行mysql.exe——default-character-set = utf8(或utf8mb4)选项。这个选项是必要的,因为utf16le是不能用作客户端字符集的字符集之一。看到mysql使用Windows api使用UTF-16LE与控制台通信,使用UTF-8与服务器通信。(前面提到的菜单项设置刚才描述的字体和字符集。)

      每次跑步时避免这些步骤mysql,您可以创建一个调用mysql.exe.快捷方式应该将控制台字体设置为Lucida console或其他兼容的Unicode字体,并传递——default-character-set = utf8(或utf8mb4)选项mysql.exe

      或者,创建一个仅设置控制台字体的快捷方式,并设置控件中的字符集(mysql)你的小组my.ini文件:

      (mysql) default-character-set = utf8
      垂直显示查询结果

      有些查询结果在垂直显示时比通常的水平表格式可读性强得多。通过使用\G而不是分号来结束查询,可以垂直显示查询。例如,包含换行符的较长的文本值通常在垂直输出时更容易阅读:

      从邮件mysql > SELECT *长度(txt) < 300上限300,1 \ G  *************************** 1。row *************************** msg_nro: 3068 date: 2000-03-01 23:29:50 time_zone: +0200 mail_from: Jones reply: jones@example.com mail_to: "John Smith"  sbj: UTF-8 txt: >>>>> "John" == John Smith writes: John> Hi。我认为这是个好主意。有人熟悉John>的UTF-8或Unicode吗?否则,我会把它放在我的约翰>待办事项清单上,看看会发生什么。是的,请这么做。Regards, Jones文件:收件箱-jani-1 hash: 190402944 1 row in set(0.09秒)
      使用安全更新模式(——Safe-Updates)

      对于初学者,一个有用的启动选项是——safe-updates(或——i-am-a-dummy,效果相同)。安全更新模式对于您可能发出更新删除但是忘记了在哪里子句,指示要修改的行。通常,这类语句更新或删除表中的所有行。与——safe-updates,您只能通过指定标识行的键值来修改行限制从句,或者两者都有。这有助于防止事故发生。安全更新模式也有限制选择产生(或估计产生)非常大的结果集的语句。

      ——safe-updates选择的原因mysql的会话值,当它连接到MySQL服务器时,执行以下语句sql_safe_updatessql_select_limit,max_join_size系统变量:

      SET sql_safe_updates=1, sql_select_limit=1000, max_join_size=1000000;

      语句对语句处理的影响如下:

      • 启用sql_safe_updates原因更新而且删除控件中未指定键约束的语句将产生错误在哪里条款,或提供一个限制从句,或者两者都有。例如:

        更新tbl_namenot_key_column瓦尔在哪里key_column瓦尔;更新tbl_namenot_key_column瓦尔限制1;
      • 设置sql_select_limit到1000会导致服务器限制所有选择结果设置为1,000行,除非语句包含限制条款。

      • 设置max_join_size到1,000,000导致多表选择语句来产生错误,如果服务器估计它必须检查超过1,000,000个行组合。

      要指定不同于1,000和1,000,000的结果集限制,可以使用——select-limit而且——max-join-size调用时的选项mysql

      Mysql——safe-updates——select-limit=500——max-join-size=10000

      这是可能的更新而且删除方法中指定的键也会在安全更新模式下产生错误在哪里子句,如果优化器决定不在键列上使用索引:

      禁用mysql自动连接功能

      如果mysql客户端在发送一条语句时失去与服务器的连接,它会立即自动尝试重新连接一次服务器并再次发送该语句。然而,即使mysql如果重新连接成功,则第一个连接已经结束,所有以前的会话对象和设置都丢失了:临时表、自动提交模式、用户定义变量和会话变量。此外,任何当前事务都将回滚。这种行为对你来说可能是危险的,就像下面的例子中,在你不知道的情况下,服务器在第一条和第二条语句之间关闭并重新启动:

      mysql> SET @a=1;查询OK, 0行影响(0.05秒)mysql> INSERT INTO t VALUES(@a);MySQL服务器已经离开没有连接。试图重新联系…连接id: 1当前数据库:test查询OK, 1 row affected (1.30 sec) mysql> SELECT * FROM t;+------+ | 一个  | +------+ | 零  | +------+ 1行集(0.05秒)

      @a用户变量在连接时丢失,在重新连接后它是未定义的。如果它是重要的拥有mysql如果连接已丢失,则终止并出现错误,您可以启动mysql客户端与——skip-reconnect选择。

      有关自动重新连接及其在重新连接时对状态信息的影响的详细信息,请参见自动重连控制

      mysql客户端解析器与服务器解析器

      mysql类所使用的完整解析器的副本mysqld服务器端的服务器。这可能导致在处理某些构念时的差异。例子:

      • 服务器解析器处理由字符作为标识符,而不是作为普通字符串ANSI_QUOTES启用SQL模式。

        mysql客户机解析器不接受ANSI_QUOTESSQL模式进入帐户。它处理由。分隔的字符串,字符相同,不论是否ANSI_QUOTES启用。

      • / * !...* /而且/ * +……* /评论,mysql客户端解析器解释短格式mysql命令。服务器解析器不解释它们,因为这些命令在服务器端没有意义。

        如果需要的话mysql不解释注释中的短格式命令,部分解决方法是使用——二进制模式选项,这将导致所有mysql要禁用的命令除了\ C而且\ d在非交互模式下(用于管道的输入mysql或使用命令)。