mysql 无法退出sql命令行编辑

摘要:
mysql˃insertintocore_ User(login_name,real_name,password,email,create_time,is_disab…..'˃quit'˃exit'˃;'˃'˃c'˃/c终止批处理操作(Y/N)?遇到上述情况时,Y无法最终编辑sql。最后,他无法ctrl+c,并迫使MySQL退出。后来,他寻找官方文件。上面已经解释过了。前面的提示很重要。他应该用c退出----

mysql> insert into core_user(login_name,real_name,password,email,create_time,is_disab…..

‘> quit

‘> exit

‘> ;

‘>

‘> c

‘> /c

 

终止批处理操作吗(Y/N)? y

 

遇到上面的情况无法终于sql编辑,最后没办法ctrl+c,强退了mysql ,后来找了一下官方文档,上面是有说明的,前面的提示符很重要,要用 c 退出

 

————————以下官方的说明-------------

 

这询问说明mysql的几个方面:

 

· 一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。早先提到的QUIT是一个例子。后面我们将看到其它的例子。)

 

· 当发出一个命令时,mysql将它发送给服务器并显示执行结果,然后显示另一个mysql>显示它准备好接受其它命令。

 

· mysql用表格(行和列)方式显示查询输出。第一行包含列的标签,随后的行是查询结果。通常,列标签是你取自数据库表的列的名字。如果你正在检索一个表达式而非表列的值(如刚才的例子),mysql用表达式本身标记列。

 

· mysql显示返回了多少行,以及查询花了多长时间,它给你提供服务器性能的一个大致概念。因为他们表示时钟时间(不是 CPU 或机器时间),并且因为他们受到诸如服务器负载和网络延时的影响,因此这些值是不精确的。(为了简洁,在本章其它例子中不再显示“集合中的行”。)

 

能够以大小写输入关键词。下列查询是等价的:

 

mysql> SELECT VERSION(), CURRENT_DATE;

mysql> select version(), current_date;

mysql> SeLeCt vErSiOn(), current_DATE;

这是另外一个查询,它说明你能将mysql用作一个简单的计算器:

 

mysql> SELECT SIN(PI()/4), (4+1)*5;

+——————+———+

| SIN(PI()/4) | (4+1)*5 |

+——————+———+

| 0.70710678118655 | 25 |

+——————+———+

1 row in set (0.02 sec)

至此显示的命令是相当短的单行语句。你可以在一行上输入多条语句,只需要以一个分号间隔开各语句:

 

mysql> SELECT VERSION(); SELECT NOW();

+—————–+

| VERSION() |

+—————–+

| 5.1.2-alpha-log |

+—————–+

1 row in set (0.00 sec)

 

+———————+

| NOW() |

+———————+

| 2005-10-11 15:15:00 |

+———————+

1 row in set (0.00 sec)

不必全在一个行内给出一个命令,较长命令可以输入到多个行中。mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束。(换句话说,mysql接受自由格式的输入:它收集输入行但直到看见分号才执行。)

 

这里是一个简单的多行语句的例子:

 

mysql> SELECT

-> USER()

-> ,

-> CURRENT_DATE;

+—————+————–+

| USER() | CURRENT_DATE |

+—————+————–+

| jon@localhost | 2005-10-11 |

+—————+————–+

在这个例子中,在输入多行查询的第一行后,要注意提示符如何从mysql>变为->,这正是mysql如何指出它没见到完整的语句并且正在等待剩余的部分。提示符是你的朋友,因为它提供有价值的反馈,如果使用该反馈,将总是知道mysql正在等待什么。

 

如果你决定不想执行正在输入过程中的一个命令,输入c取消它:

 

mysql> SELECT

-> USER()

-> c

mysql>

这里也要注意提示符,在你输入c以后,它切换回到mysql>,提供反馈以表明mysql准备接受一个新命令。

 

下表显示出可以看见的各个提示符并简述它们所表示的mysql的状态:

 

提示符

 

含义

 

mysql>

 

准备好接受新命令。

 

->

 

等待多行命令的下一行。

 

‘>

 

等待下一行,等待以单引号(“’”)开始的字符串的结束。

 

“>

 

等待下一行,等待以双引号(“””)开始的字符串的结束。

 

`>

 

等待下一行,等待以反斜点(‘`’)开始的识别符的结束。

 

/*>

 

等待下一行,等待以/*开始的注释的结束。

 

当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,mysql等待进一步输入:

 

mysql> SELECT USER()

->

如果出现这种情况(你认为输完了语句,但是只有一个->提示符响应),很可能mysql正在等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐一会儿。输入一个分号完成语句,mysql将执行:

 

mysql> SELECT USER()

-> ;

+—————+

| USER() |

+—————+

| jon@localhost |

+—————+

在字符串收集期间将出现 ‘> 和 “> 提示符(提示MySQL正等待字符串的结束)。在MySQL中,可以写由‘’’或‘”’字符括起来的字符串 (例如,’hello’或”goodbye”),并且mysql允许输入跨越多行的字符串。当看到一个 ‘> 或 “> 提示符时,这意味着已经输入了包含以‘’’或‘”’括号字符开始的字符串的一行,但是还没有输入终止字符串的匹配引号。这显示你粗心地省掉了一个引号字符。例如:

 

mysql> SELECT * FROM my_table WHERE name = ‘Smith AND age < 30;

'>

如果你输入SELECT语句,然后按Enter(回车)键并等待结果,什么都没有出现。不要惊讶,“为什么该查询这么长呢?”,注意”>提示符提供的线索。它告诉你mysql期望见到一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串”Smith丢掉了第二个引号。)

 

走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入c,因为mysql作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样mysql知道你完成了字符串),然后输入c:

 

mysql> SELECT * FROM my_table WHERE name = ‘Smith AND age < 30;

'> ‘c

mysql>

提示符回到mysql>,显示mysql准备好接受一个新命令了。

 

`> 提示符类似于 ‘> 和”> 提示符,但表示你已经开始但没有结束以`> 开始的识别符。

 

知道’>和”>提示符的含义很重要,因为如果你错误地输入一个未终止的字符串,任何后面输入的行将要被mysql忽略–包括包含QUIT的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。

来源:http://blog.sina.com.cn/s/blog_67ae19eb01013ywz.html

免责声明:文章转载自《mysql 无法退出sql命令行编辑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇详细介绍MySQL/MariaDB的锁Spring AOP实现原理(递归拦截器)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL存储过程(转)

MySQL存储过程(转) 一、MySQL 创建存储过程“pr_add” 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 “a”、“b”,返回这两个参数的和。 drop procedure if exists pr_add; -- 计算两个数之和 create procedure pr_add(a int,b int)begin...

MySQL启动与多实例安装

启动方式及故障排查 一、几个问题 1.1 /etc/init.d/mysql 从哪来 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 1.2 mysql能否设置成开机启动 可以,但是没必要 # 方法1: chkconfig mysql on # 方法2: echo "/et...

Datax中mysql无法连接上的问题(因为版本问题)

我linux上的mysql是8.0版本的,但是datax中的JDBC是5.1版本因此出错,进入datax的pulgin文件夹中把writer和reader文件加下的mysql对应的文件下的libs中换成8.0版本的JDBC,原先的JDBC直接删除就可以。...

MYSQL安装报错 -- 出现Failed to find valid data directory.

今天整SQL的时候报了个错误,SQL服务启动不起来 以系统用户运行windows服务,注意:在Windows下MySQL服务名为:MySQL 解决方法: 1.首先,你需要把原来的服务删除 (mysql为你的服务名称,自己可以随便定义的。此命令需要进入mysql安装目录下的bin目录运行) mysqld --remove mysql  删除Data目录...

mysql-community-server-5.7.24 &amp;amp; 5.7.31 (5.6.35 升级到 5.7.24)

阶段1: rpm -qa | grep mysql wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-serv...

MySQL8.0在Windows下的安装和使用

前言 MySQL在Windows下有2种安装方式:1.图形化界面方式安装MySQL 2.noinstall方式安装MySQL。在这里,本文只介绍第二种方式:以noinstall方式安装MySQL,以及MySQL的一些基本用法。 据说,第一种是傻瓜教程,简单些,但是我报了一系列依赖错误,最终也没解决,心累... mysql安装 https://blog....