MySQL命令⾏客户端(⼀)客户端选项
⽂章⽬录
mysql - MySQL命令⾏客户端
mysql是具有输⼊⾏编辑功能的简单SQL Shell。它⽀持交互和⾮交互使⽤。交互使⽤时,查询结果以ASCII表格式显⽰。当⾮交互式使⽤(例如,⽤作过滤器)时,结果以制表符分隔的格式显⽰。可以使⽤命令选项更改输出格式。
如果由于内存不⾜⽽导致⼤型结果集出现问题,请使⽤ --quick 选项。这迫使mysql⼀次从服务器检索⼀⾏结果,⽽不是在显⽰之前检索整个结果集并将其缓冲到内存中。这是通过使⽤客户机/服务器库中的mysql_use_result()C API函数⽽不是mysql_store_result()返回结果集来完成的。
注意:另外,MySQL Shell提供对X DevAPI的访问。
使⽤mysql⾮常简单。从命令解释器的提⽰中调⽤它,如下所⽰:
shell> mysql db_name
或者:
shell> mysql --user=user_name --password db_name
Enter password: your_password
然后输⼊⼀个SQL语句,以;, \g 或者 \G 结束。然后按Enter键。
键⼊Control + C会中断当前语句(如果存在)。
您可以在脚本⽂件(批处理⽂件)中执⾏SQL语句,如下所⽰:
shell> mysql db_name < script.sql > output.tab
在Unix上,mysql客户端将交互式执⾏的语句记录到历史⽂件中。
Mysql客户端选项
mysql⽀持很多选项,可以在命令⾏或选项⽂件的 [mysql] 和 [client] 组中指定这些选项。因为选项很多,仅翻译如下⼏个选项。
--bind-address=ip_address
在具有多个⽹络接⼝的计算机上,使⽤此选项选择⽤于连接到MySQL服务器的接⼝。
--character-sets-dir=dir_name
字符集的安装⽬录。
--compress, -C
如果可能,压缩客户端和服务器之间发送的所有信息。
--database=db_name, -D db_name
要使⽤的数据库。这在选项⽂件中有⽤。
--debug[=debug_options], -# [debug_options]
编写调试⽇志。典型的debug_options字符串是d:t:o,file_name。默认值是d:t:o,/ace。
仅当MySQL是使⽤WITH_DEBUG构建的,此选项才可⽤。Oracle提供的MySQL版本⼆进制⽂件不使⽤此选项构建。
--default-character-set=charset_name
使⽤charset_name作为客户端和连接的默认字符集。
如果操作系统使⽤⼀个字符集,⽽mysql客户端默认使⽤另⼀个字符集,则此选项很有⽤。在这种情况下,输出格式可能不正确。通常,您可以通过使⽤此选项强制客户端使⽤系统字符集来解决此类问题。
--defaults-extra-file=file_name
在全局选项⽂件之后但在⽤户选项⽂件之前(在Unix上)读取此选项⽂件(可以参考)。如果该⽂件不存在或⽆法访问,则发⽣错误。
如果将file_name指定为相对路径名⽽不是完整路径名,则将其解释为相对于当前⽬录。
--defaults-file=file_name
仅使⽤给定的选项⽂件。如果该⽂件不存在或⽆法访问,则发⽣错误。如果将file_name指定为相对路径名⽽不是完整路径名,则将其解释为相对于当前⽬录。
例外:尽管使⽤ --defaults-file,客户端程序也会读取 .myloginf。
--host=host_name, -h host_name
连接到给定host上的MySQL服务器。
--max-allowed-packet=value
⽤于客户端/服务器通信的缓冲区的最⼤⼤⼩。默认值为16MB,最⼤为1GB。
--password[=password], -p[password]
⽤于连接到服务器的MySQL帐户的密码。密码值是可选的。如果没有给出,mysql会提⽰输⼊⼀个。如果给出,则 --password= 或 -p 与后⾯的密码之间必须没有空格。如果未指定密码选项,则默认为不发送密码。
在命令⾏上指定密码应该被认为是不安全的。为避免在命令⾏上输⼊密码,请使⽤选项⽂件。
要明确指定没有密码,并且mysql不应提⽰输⼊密码,请使⽤ --skip-password 选项。
--port=port_num, -P port_num
对于TCP/IP连接,使⽤的端⼝号。
--protocol={TCP|SOCKET|PIPE|MEMORY}
⽤于连接到服务器的连接协议。当其他连接参数通常导致使⽤所需协议以外的协议时,它⾮常有⽤。
--socket=path, -S path
对于到localhost的连接,要使⽤的Unix套接字⽂件,或者在Windows上,要使⽤的命名管道的名称。
--syslog, -j
此选项使mysql将交互式语句发送到系统⽇志记录⼯具。在Unix上,这是syslog。记录的消息出现的⽬的地取决于系统。在Linux上,⽬标通常是/var/log/messages⽂件。
这是在Linux上使⽤ --syslog ⽣成的输出⽰例。格式化此输出以提⾼可读性;每条记录的消息实际上只占⼀⾏。
⽰例:
Linux环境下,登录mysql shell界⾯,并执⾏语句。
# ./mysql --protocol=tcp --port=3307 -j
mysql> show databases;
mysql> use sys
mysql> show tables;
查询messages⽇志,发现相应输出:
# tail -f /var/log/messages
Jan 19 21:16:52 compute1 MysqlClient: SYSTEM_USER:'root', MYSQL_USER:'--', CONNECTION_ID:5, DB_SERVER:'--', DB:'--', QUERY:'show databases ;'
Jan 19 21:17:11 compute1 MysqlClient: SYSTEM_USER:'root', MYSQL_USER:'--', CONNECTION_ID:5, DB_SERVER:'--', DB:'sys', QUERY:'use sys'
Jan 19 21:17:23 compute1 MysqlClient: SYSTEM_USER:'root', MYSQL_USER:'--', CONNECTION_ID:5, DB_SERVER:'--', DB:'sys', QUERY:'show tables;' computer1是主机名。
--tee=file_name
将输出副本追加到给定⽂件。此选项仅在交互模式下有效。(这应该调⽤系统的tee命令)
--user=user_name, -u user_name
⽤于连接到服务器的MySQL帐户的⽤户名。
--xml, -X
产⽣XML输出。
格式:
<field name="column_name">NULL</field>
--xml与mysql⼀起使⽤时的输出与mysqldump的输出匹配。
XML输出还使⽤XML名称空间,如下所⽰:
# ./mysql --protocol=tcp --port=3307 -j --xml -e "SHOW VARIABLES LIKE 'version%'"
<?xml version="1.0"?>
<resultset statement="SHOW VARIABLES LIKE 'version%'
" xmlns:xsi="/2001/XMLSchema-instance">
<row>
<field name="Variable_name">version</field>
<field name="Value">5.7.23</field>
</row>
<row>
<field name="Variable_name">version_comment</field>
<field name="Value">MySQL Community Server (GPL)</field>
</row>
打开mysql服务命令<row>
<field name="Variable_name">version_compile_machine</field>
<field name="Value">x86_64</field>
</row>
<row>
<field name="Variable_name">version_compile_os</field>
<field name="Value">linux-glibc2.12</field>
</row>
</resultset>
最近需要深⼊学习⼀下C语⾔和PYTHON,写博客的时间会受到考验。我尽量做好时间管理,尽量保证⽂章的含⾦量不下降太多。
参考⽂档
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论