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,/tmp/mysql.trace。
    仅当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,客户端程序也会读取 .mylogin.cnf。
  • -‌-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="http://www.w3.org/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>

  <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,写博客的时间会受到考验。我尽量做好时间管理,尽量保证文章的含金量不下降太多。
在这里插入图片描述

参考文档

https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值