已索引

Workbench是Oracle官方提供的一款GUI工具,类似sqldeveloper,支持如下功能:

  • SQL语句格式化
  • SQL关键字大写
  • MySQL Dashboard
  • SQL语法提示
  • ER图
  • Forward Engine // ER图 --> DB表结构
  • Reverse // DB表结构 --> ER图

mysql是命令行工具,类似sqlplus。这儿主要介绍下 mysql 的一些使用技巧。

最常用的连接方法

IPC 连接:

mysql -uroot -p [--socket=xxx]

TCP 连接:

mysql -uroot -p -h xxx -P xxx

通常会把这些连接选项写入到配置文件中,MySQL 查找配置文件的顺序为:

# mysql --help --verbose | grep cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf  /etc/mysql/my.cnf  /usr/local/mysql/etc/my.cnf  ~/.my.cnf 

注意:如果这些些文件同时存在,都会读取,如果有相同的参数配置,以最右边的为准。

下面是一个示例文件:

# cat .my.cnf
[client]
user=root
password=oracle
socket=/usr/local/mysql/3306/mysql.sock

通过 login-path 连接数据库

login-path 是 MySQL5.6 开始支持的新特性。特别适合多实例 MySQL 服务器。
其思想是将登录需要的信息放到 .mylogin.cnf 的 section 中,认证信息加密保存,格式跟参数文件一样。
我们可以使用 mysql_config_editor 命令来配置(set)、显示(print)、删除(remove)、重置(reset)文件中的内容。
mysql_config_editor 的选项跟 mysql 的选项是一样的。可以将选项写到 login path 中,也可以在命令行中给出。

显示配置:

mysql_config_editor print --all                    #显示所有的 login-path 信息
mysql_config_editor print --login-path=mylogin    #显示指定的 login-path 配置

配置 login-path:

mysql_config_editor set --login-path=newlogin --user=root  --host=127.0.0.1 --port=3306 --password
注意:如果密码中含有特殊字符,需要用单引号引起来。

删除 login-path:

mysql_config_editor remove --login-path=newlogin

重置 login-path:

mysql_config_editor reset

使用login-path登录:

mysql --login-path=mylogin

login-path 的可配置项:

-G,--login-path=name    登录文件中 login path 的名字,默认为 client
-h,–host=name            要登陆的主机
-P,–port=name            登陆端口
-u,–user                登陆使用的用户名
-p,–password            登陆使用的密码
-S,–socket=name            登陆使用的 socket

查看当前连接的一些状态信息:

mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.7.27, for linux-glibc2.12 (x86_64) using  EditLine wrapper

Connection id:          138069
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.27-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 62 days 23 hours 45 min 24 sec

Threads: 21  Questions: 76155268  Slow queries: 133416  Opens: 1682  Flush tables: 1  Open tables: 1513  Queries per second avg: 13.993
--------------

mysql>

查看帮助

mysql> help    查看客户端 mysql 命令相关帮助
mysql> help contents    查看服务器端的帮助
mysql> help create        查看 create 命令的帮助

修改提示符

mysql> prompt (\u@\h) [\d]>\_
(root@localhost) [cydb]> 

建议将其写入配置文件:
[mysql]
prompt=(\\u@\\h) [\\d]>\\_

垂直显示结果

mysql> select * from mysql.user\G

调用操作系统命令

mysql> system ls;

保存结果到文件

mysql> tee /tmp/cy.txt
mysql> notee;

分页

mysql> pager less
PAGER set to 'less'
mysql> select * from help_keyword; 当一屏显示不全时,就会调用 less 命令
mysql> nopager;    取消 pager 功能
PAGER set to stdout

命令补齐

mysql> rehash;
在 5.7 中默认就是打开的,注意前提是已经使用 use 选择了一个数据库。

几个 mysql 命令常用参数:

--login-path=mylogin     
--auto-rehash    是否启用 tab 键补齐功能,默认TRUE
--default-character-set    指定连接会话的字符集,默认auto
--show-warnings    执行完语句后,马上显示警告信息,默认FALSE
-e, --execute=name    非交互模式执行命令
-f, --force    如果使用 -e 同时执行多条命令,-f 表示即使前面的命令报错,仍然向后执行
-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 07 月 25 日 04 : 47 PM
如果觉得我的文章对你有用,请随意赞赏