MySQL Shell 2:连接与模式
2020-12-24 本文已影响0人
轻松的鱼
连接
1. 启动时建立 session
命令选项的方式连接 MySQL:
mysqlsh -h 172.16.22.1 -P 3306 -u root -p
uri 字符串方式连接 MySQL:
mysqlsh root@172.16.22.1:3306/db1
关于 X Protocol 和 MySQL Protocol,默认 3306 是 MySQL Protocol,33060 是 X Protocol,也可以通过--mysql、--mysqlx 参数指定(可以省略),当然必须填写正确的端口:
mysqlsh --mysql -h 172.16.22.1 -P 3306 -u root
mysqlsh --mysqlx -h 172.16.22.1 -P 33060 -u root
默认使用 JS 模式,如果要用 SQL 模式(也就是通过 SQL 管理数据库),可以指定参数:
- --sqlc 对应 MySQL Protocol
- --sqlx 对应 X Protocol
mysqlsh --sqlc -h 172.16.22.1 -P 3306 -u root
mysqlsh --sqlx -h 172.16.22.1 -P 33060 -u root
2. 启动后建立 session
如果执行 mysqlsh 没有指定任何参数或 uri,是不会连接到 MySQL 的,可以使用 \connect 命令用 uri 字符串方式连接到指定的 MySQL:
JS > \connect root@172.16.22.1:33060/hucq
这里不能在连接时选择 SQL 模式,可以在连接后切换 SQL 模式:
JS > \sql
Switching to SQL mode... Commands end with ;
Fetching table and column names from `hucq` for auto-completion... Press ^C to stop.
模式
MySQL shell 默认以 JS(JavaScript)模式进行操作,此外也支持 SQL、Python 语法。\help 命令可以查看帮助信息:
JS > \help
...
- \js Switches to JavaScript processing mode.
- \sql Executes SQL statement or switches to SQL processing
mode when no statement is given.
- \py Switches to Python processing mode.
可以按照上面的方法切换语言模式,比如切换到 SQL 模式:
JS > \sql
可以看到shell 提示符变为 "SQL",接下来可以执行 DBA 熟悉的 SQL 语句:
SQL > show databases;
+-------------------------------+
| Database |
+-------------------------------+
| hucq |
| information_schema |
| mysql |
| mysql_innodb_cluster_metadata |
| mysqlslap |
| performance_schema |
| sys |
| world_x |
+-------------------------------+
SQL > show global variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+