我正在使用Ubuntu的NATTY。
我使用以下命令从命令行运行mysqld:
mysqld -ndbcluster --console -umysql
我得到以下几点:
120314 0:09:49 [Warning] option 'new': boolean value 'dbcluster' wasn't recognized. Set to OFF. 120314 0:09:49 [Note] Plugin 'ndbcluster' is disabled. 120314 0:09:49 [Note] Plugin 'FEDERATED' is disabled. 120314 0:09:50 InnoDB: The InnoDB memory heap is disabled 120314 0:09:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120314 0:09:50 InnoDB: Compressed tables use zlib 1.2.3 120314 0:09:50 InnoDB: Using Linux native AIO 120314 0:09:50 InnoDB: Initializing buffer pool, size = 128.0M 120314 0:09:50 InnoDB: Completed initialization of buffer pool 120314 0:09:50 InnoDB: highest supported file format is Barracuda. 120314 0:09:50 InnoDB: Waiting for the background threads to start 120314 0:09:51 InnoDB: 1.1.8 started; log sequence number 1595675 120314 0:09:51 [Note] Event Scheduler: Loaded 0 events 120314 0:09:51 [Note] mysqld: ready for connections. Version: '5.5.19-ndb-7.2.4-gpl-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Cluster Community Server (GPL)
但是,我似乎无法弄清楚如何终止会话。 我试过Control-C和其他一些组合。
如何结束会话并返回到命令提示符?
谢谢。
ctrl + c将生成SIGINT
,可以被应用程序捕获或阻止。 如果你只是从另一个终端运行killall mysqld
,你会发送SIGTERM
给进程,这个进程也可以被捕获或者阻塞,但是会给出一个更强的提示,告诉进程应该立即终止。 (这将是很好的清理关闭数据库表。)
Ctrl + \将生成SIGQUIT
,可以被应用程序捕获或阻止。 (如果应用程序没有捕获或阻止此信号,操作系统将为您生成一个核心文件。)
您可以使用kill(1)
手动发送SIGKILL
; SIGKILL
不能被捕获或阻塞,因此如果内核足够活跃以处理信号,则会始终停止进程。 使用pidof
或其他机制找到pid,并运行kill -SIGKILL pid
。 请注意,这是一个粗略的死亡。 该进程没有机会自行清理,因此数据库表可能会处于不一致的状态,可能需要一些时间才能在下次启动时进行修复。
如果你只是想提示回来,你可以使用ctrl + z来暂停进程。 然后,您可以使用shell的bg
和fg
命令来允许进程在后台继续运行,或者在前台重新加入进程。 (这个术语是无意义的,但我希望它传达这个想法。)
按下Ctrl + \ 。
MySQL似乎忽略了SIGINT(当按下Ctrl + C时发出的),但是当它接收到SIGQUIT(这是Ctrl + \发送的内容)时将执行干净的关闭。
有关详细信息,请参阅samold的答案。