已索引
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 表示即使前面的命令报错,仍然向后执行