【docker】dbclient远程访问非本机数据库(mysql,oracle,postgres,sqlserver/mssql),测试远程数据库连通性

一、docker_dbclient远程连接mysql

1、将拉下来的mysql镜像跑起来

docker run -idt docker_dbclient:1.0 /bin/bash

2、进入mysql容器中

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
d05746c0a57f        docker_dbclient:1.0   "/bin/bash"         17 hours ago        Up 17 hours                             gallant_turing
[root@localhost ~]# docker exec -it d05746c0a57f bash

3、登陆mysql

[root@d05746c0a57f /]# mysql -h 1.1.1.1 -u root -p

4、操作过程如下:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
d05746c0a57f        docker_dbclient:1.0   "/bin/bash"         17 hours ago        Up 17 hours                             gallant_turing
[root@localhost ~]# docker exec -it d05746c0a57f bash
[root@d05746c0a57f /]# mysql -h 1.1.1.1 -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 199680
Server version: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d                  |
| d1i                |
| m1.                |
| mysql              |
| performance_schema |
| sys                |
| test1111           |
+--------------------+
10 rows in set (0.00 sec)

MySQL [(none)]> exit
Bye
[root@d05746c0a57f /]#

二、docker_dbclient远程连接oracle

1、使用sqlplus连接数据库

登录本机数据库

sqlplus / as sysdba sqlplus username/password

登录远程数据库

sqlplus username/password@orcl
sqlplus username/password@hosrIP:port/sid

2、示例

sqlplus abc/abc#[email protected]:1521/testdb

3、操作过程如下

[root@localhost home]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
d05746c0a57f        docker_dbclient:1.0   "/bin/bash"         21 hours ago        Up 21 hours                             gallant_turing
[root@localhost home]# docker exec -it d05746c0a57f bash
[root@d05746c0a57f /]# sqlplus test/[email protected]:1521/orcl

SQL*Plus: Release 21.0.0.0.0 - Production on Fri May 6 06:29:33 2022
Version 21.6.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL>

4、其他oracle常用命令

【docker】dbclient远程访问非本机数据库(mysql,oracle,postgres,sqlserver/mssql),测试远程数据库连通性_第1张图片

 

三、docker_dbclient远程连接PostgreSQL

首先,你连接的服务器需要安装postgres,因为我们要使用psql命令来连接数据库。如果没安装的话,会出现一下提示:

-bash: psql: command not found

装好之后输入:psql --version

[root@d05746c0a57f /]# psql --version
psql (PostgreSQL) 9.2.24

显示版本,说明安装成功啦。

1、简单通过命令来建立连接

psql -h hostname -U username -d dbname -p port

上面命令的参数含义如下:

-U 指定用户
-d 指定数据库
-h 指定服务器
-p 指定端口

[root@d05746c0a57f /]# .\psql.exe --help
bash: .psql.exe: command not found
[root@d05746c0a57f /]# psql --version
psql (PostgreSQL) 9.2.24
[root@d05746c0a57f /]# psql -h 192.168.1.77 -U postgres -d test  -p 5432
Password for user postgres:
psql (9.2.24, server 13.3 (Debian 13.3-1.pgdg100+1))
WARNING: psql version 9.2, server version 13.0.
         Some psql features might not work.
Type "help" for help.

test=#

2、更多如何链接postgresql数据库信息

psql --help,即可查看如何链接数据库postgresql。

[root@d05746c0a57f /]# psql --help
psql是PostgreSQL 的交互式客户端工具。
使用方法:
  psql [选项]... [数据库名称 [用户名称]]
通用选项:
  -c, --command=命令       执行单一命令(SQL或内部指令)然后结束
  -d, --dbname=DBNAME      指定要连接的数据库 (默认:"jianglei02")
  -f, --file=文件名        从文件中执行命令然后退出
  -l, --list               列出所有可用的数据库,然后退出
  -v, --set=, --variable=NAME=VALUE
                           设置psql变量NAME为VALUE
                           (例如,-v ON_ERROR_STOP=1)
  -V, --version            输出版本信息, 然后退出
  -X, --no-psqlrc          不读取启动文档(~/.psqlrc)
  -1 ("one"), --single-transaction
                           作为一个单一事务来执行命令文件(如果是非交互型的)
  -?, --help[=options]     显示此帮助,然后退出
      --help=commands      列出反斜线命令,然后退出
      --help=variables     列出特殊变量,然后退出

输入和输出选项:
  -a, --echo-all           显示所有来自于脚本的输入
  -b, --echo-errors        回显失败的命令
  -e, --echo-queries       显示发送给服务器的命令
  -E, --echo-hidden        显示内部命令产生的查询
  -L, --log-file=文件名    将会话日志写入文件
  -n, --no-readline        禁用增强命令行编辑功能(readline)
  -o, --output=FILENAME    将查询结果写入文件(或 |管道)
  -q, --quiet              以沉默模式运行(不显示消息,只有查询结果)
  -s, --single-step        单步模式 (确认每个查询)
  -S, --single-line        单行模式 (一行就是一条 SQL 命令)

输出格式选项 :
  -A, --no-align           使用非对齐表格输出模式
      --csv                CSV(逗号分隔值)表输出模式
  -F, --field-separator=STRING
                           为字段设置分隔符,用于不整齐的输出(默认:"|")
  -H, --html               HTML 表格输出模式
  -P, --pset=变量[=参数]   设置将变量打印到参数的选项(查阅 \pset 命令)
  -R, --record-separator=STRING
                           为不整齐的输出设置字录的分隔符(默认:换行符号)
  -t, --tuples-only        只打印记录i
  -T, --table-attr=文本    设定 HTML 表格标记属性(例如,宽度,边界)
  -x, --expanded           打开扩展表格输出
  -z, --field-separator-zero
                           为不整齐的输出设置字段分隔符为字节0
  -0, --record-separator-zero
                           为不整齐的输出设置记录分隔符为字节0

联接选项:
  -h, --host=主机名        数据库服务器主机或socket目录(默认:"本地接口")
  -p, --port=端口          数据库服务器的端口(默认:"5432")
  -U, --username=用户名    指定数据库用户名(默认:"jianglei02")
  -w, --no-password        永远不提示输入口令
  -W, --password           强制口令提示 (自动)

更多信息,请在psql中输入"\?"(用于内部指令)或者 "\help"(用于SQL命令),
或者参考PostgreSQL文档中的psql章节.

臭虫报告至.
PostgreSQL 主页: 

3 、psql如何操作数据库

在psql链接postgresql成功之后,输入\?即可查看所有可以操作数据库对象的psql命令。

test=> \?
一般性
  \copyright             显示PostgreSQL的使用和发行许可条款
  \crosstabview [COLUMNS] 执行查询并且以交叉表显示结果
  \errverbose            以最冗长的形式显示最近的错误消息
  \g [(OPTIONS)] [FILE]  执行查询(并将结果发送到文件或|管道);
                         不带参数的\g等价于分号
  \gdesc                 描述查询结果,而不执行它
  \gexec                 执行策略,然后执行其结果中的每个值
  \gset [PREFIX]         执行查询并把结果存到psql变量中
  \gx [(OPTIONS)] [FILE] 就像\g,但强制扩展输出模式
  \q                     退出 psql
  \watch [SEC]           每隔SEC秒执行一次查询

帮助
  \? [commands]          显示反斜线命令的帮助
  \? options             显示 psql 命令行选项的帮助
  \? variables           显示特殊变量的帮助
  \h [NAME]              SQL命令语法上的说明,用*显示全部命令的语法说明

查询缓存区
  \e [FILE] [LINE]       使用外部编辑器编辑查询缓存区(或文件)
  \ef [FUNCNAME [LINE]]  使用外部编辑器编辑函数定义
  \ev [VIEWNAME [LINE]]  用外部编辑器编辑视图定义
  \p                     显示查询缓存区的内容
  \r                     重置(清除)查询缓存区
  \w 文件                将查询缓存区的内容写入文件

输入/输出
  \copy ...              执行 SQL COPY,将数据流发送到客户端主机
  \echo [-n] [STRING]    将字符串写到标准输出(-n表示没有换行符)
  \i 文件                从文件中执行命令
  \ir FILE               与 \i类似, 但是相对于当前脚本的位置
  \o [文件]              将全部查询结果写入文件或 |管道
  \qecho [-n] [STRING]   将字符串写入\o输出流(-n表示无换行)
  \warn [-n] [STRING]    将字符串写入标准错误(-n 表示无换行)

条件
  \if EXPR               开始条件块
  \elif EXPR             当前条件块内的备选方案
  \else                  当前条件块内的最终备选方案
  \endif                 条件块的结尾

资讯性
  (选项: S = 显示系统对象, + = 其余的详细信息)
  \d[S+]                 列出表,视图和序列
  \d[S+]  名称           描述表,视图,序列,或索引
  \da[S]  [模式]         列出聚合函数
  \dA[+]  [模式]         列出访问方法
  \dAc[+] [AMPTRN [TYPEPTRN]]  列出运算符
  \dAf[+] [AMPTRN [TYPEPTRN]]  列出运算符集合
  \dAo[+] [AMPTRN [OPFPTRN]]   列出运算符集合
  \dAp[+] [AMPTRN [OPFPTRN]]   列出运算符集合所支持的功能
  \db[+]  [模式]         列出表空间
  \dc[S+] [模式]         列表转换
  \dC[+]  [模式]         列出类型强制转换
  \dd[S]  [模式]         显示没有在别处显示的对象描述
  \dD[S+] [模式]         列出共同值域
  \ddp    [模式]         列出默认权限
  \dE[S+] [模式]         列出引用表
  \des[+] [模式]         列出外部服务器
  \det[+] [模式]         列出引用表
  \deu[+] [模式]         列出用户映射
  \dew[+] [模式]         列出外部数据封装器
  \df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]
                         列出 [only agg/normal/procedure/trigger/window] 函数
  \dF[+]  [模式]         列出文本搜索配置
  \dFd[+] [模式]         列出文本搜索字典
  \dFp[+] [模式]         列出文本搜索解析器
  \dFt[+] [模式]         列出文本搜索模版
  \dg[S+] [模式]         列出角色
  \di[S+] [模式]         列出索引
  \dl                    列出大对象, 功能与\lo_list相同
  \dL[S+] [模式]         列出所有过程语言
  \dm[S+] [模式]         列出所有物化视图
  \dn[S+] [模式]         列出所有模式
  \do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
                         列出运算符
  \dO[S+] [模式]         列出所有校对规则
  \dp     [模式]         列出表,视图和序列的访问权限
  \dP[itn+] [PATTERN]    列出[仅表/索引]分区关系[n=nested]
  \drds [ROLEPTRN [DBPTRN]] list per-database role settings
  \dRp[+] [模式]         列出复制发布
  \dRs[+] [模式]         列出复制订阅
  \ds[S+] [模式]         列出序列
  \dt[S+] [模式]         列出表
  \dT[S+] [模式]         列出数据类型
  \du[S+] [模式]         列出角色
  \dv[S+] [模式]         列出视图
  \dx[+]  [模式]         列出扩展
  \dX     [PATTERN]      列出扩展统计信息
  \dy[+]  [PATTERN]      l列出所有事件触发器
  \l[+]   [模式]         列出所有数据库
  \sf[+]  FUNCNAME       显示一个函数的定义
  \sv[+]  VIEWNAME       显示一个视图的定义
  \z      [模式]         和\dp的功能相同

格式化
  \a                     在非对齐模式和对齐模式之间切换
  \C [字符串]            设置表的标题,或如果没有的标题就取消
  \f [字符串]            显示或设定非对齐模式查询输出的字段分隔符
  \H                     切换HTML输出模式 (目前是 关闭)
  \pset [NAME [VALUE]]   设置表输出选项
                         (border|columns|csv_fieldsep|expanded|fieldsep|
                         fieldsep_zero|footer|format|linestyle|null|
                         numericlocale|pager|pager_min_lines|recordsep|
                         recordsep_zero|tableattr|title|tuples_only|
                         unicode_border_linestyle|unicode_column_linestyle|
                         unicode_header_linestyle
  \t [开|关]             只显示记录 (目前是关闭)
  \T [字符串]            设置HTML <表格>标签属性, 或者如果没有的话取消设置
  \x [on|off|auto]       切换扩展输出模式(目前是 关闭)

连接
  \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
                         连接到新数据库(当前是"znbase8")
  \conninfo              显示当前连接的相关信息
  \encoding [编码名称]   显示或设定客户端编码
  \password [USERNAME]   安全地为用户更改口令

操作系统
  \cd [目录]             更改目前的工作目录
  \setenv NAME [VALUE]   设置或清空环境变量
  \timing [开|关]        切换命令计时开关 (目前是关闭)
  \! [命令]              在 shell中执行命令或启动一个交互式shell

变量
  \prompt [文本] 名称    提示用户设定内部变量
  \set [名称 [值数]]     设定内部变量,若无参数则列出全部变量
  \unset 名称            清空(删除)内部变量

大对象
  \lo_export LOBOID 文件
  \lo_import 文件 [注释]
  \lo_list
  \lo_unlink LOBOID      大对象运算

4 、查看postgresql的SQL命令使用方法

在psql链接postgresql成功之后,输入\h即可查看所有操作数据库对象的SQL命令;输入\h sql_command可以查看具体SQL  sql_command的使用方法。

db1=> \h
可用的说明:
  ABORT                            CREATE USER
  ALTER AGGREGATE                  CREATE USER MAPPING
  ALTER COLLATION                  CREATE VIEW
  ALTER CONVERSION                 DEALLOCATE
  ALTER DATABASE                   DECLARE
  ALTER DEFAULT PRIVILEGES         DELETE
  ALTER DOMAIN                     DISCARD
  ALTER EVENT TRIGGER              DO
  ALTER EXTENSION                  DROP ACCESS METHOD
  ALTER FOREIGN DATA WRAPPER       DROP AGGREGATE
  ALTER FOREIGN TABLE              DROP CAST
  ALTER FUNCTION                   DROP COLLATION
  ALTER GROUP                      DROP CONVERSION
  ALTER INDEX                      DROP DATABASE
  ALTER LANGUAGE                   DROP DOMAIN
  ALTER LARGE OBJECT               DROP EVENT TRIGGER
  ALTER MATERIALIZED VIEW          DROP EXTENSION
  ALTER OPERATOR                   DROP FOREIGN DATA WRAPPER
  ALTER OPERATOR CLASS             DROP FOREIGN TABLE
  ALTER OPERATOR FAMILY            DROP FUNCTION
  ALTER POLICY                     DROP GROUP
  ALTER PROCEDURE                  DROP INDEX
  ALTER PUBLICATION                DROP LANGUAGE
  ALTER ROLE                       DROP MATERIALIZED VIEW
  ALTER ROUTINE                    DROP OPERATOR
  ALTER RULE                       DROP OPERATOR CLASS
  ALTER SCHEMA                     DROP OPERATOR FAMILY
  ALTER SEQUENCE                   DROP OWNED
  ALTER SERVER                     DROP POLICY
  ALTER STATISTICS                 DROP PROCEDURE
  ALTER SUBSCRIPTION               DROP PUBLICATION
  ALTER SYSTEM                     DROP ROLE
  ALTER TABLE                      DROP ROUTINE
  ALTER TABLESPACE                 DROP RULE
  ALTER TEXT SEARCH CONFIGURATION  DROP SCHEMA
  ALTER TEXT SEARCH DICTIONARY     DROP SEQUENCE
  ALTER TEXT SEARCH PARSER         DROP SERVER
  ALTER TEXT SEARCH TEMPLATE       DROP STATISTICS
  ALTER TRIGGER                    DROP SUBSCRIPTION
  ALTER TYPE                       DROP TABLE
  ALTER USER                       DROP TABLESPACE
  ALTER USER MAPPING               DROP TEXT SEARCH CONFIGURATION
  ALTER VIEW                       DROP TEXT SEARCH DICTIONARY
  ANALYZE                          DROP TEXT SEARCH PARSER
  BEGIN                            DROP TEXT SEARCH TEMPLATE
  CALL                             DROP TRANSFORM
  CHECKPOINT                       DROP TRIGGER
  CLOSE                            DROP TYPE
  CLUSTER                          DROP USER
  COMMENT                          DROP USER MAPPING
  COMMIT                           DROP VIEW
  COMMIT PREPARED                  END
  COPY                             EXECUTE
  CREATE ACCESS METHOD             EXPLAIN
  CREATE AGGREGATE                 FETCH
  CREATE CAST                      GRANT
  CREATE COLLATION                 IMPORT FOREIGN SCHEMA
  CREATE CONVERSION                INSERT
  CREATE DATABASE                  LISTEN
  CREATE DOMAIN                    LOAD
  CREATE EVENT TRIGGER             LOCK
  CREATE EXTENSION                 MOVE
  CREATE FOREIGN DATA WRAPPER      NOTIFY
  CREATE FOREIGN TABLE             PREPARE
  CREATE FUNCTION                  PREPARE TRANSACTION
  CREATE GROUP                     REASSIGN OWNED
  CREATE INDEX                     REFRESH MATERIALIZED VIEW
  CREATE LANGUAGE                  REINDEX
  CREATE MATERIALIZED VIEW         RELEASE SAVEPOINT
  CREATE OPERATOR                  RESET
  CREATE OPERATOR CLASS            REVOKE
  CREATE OPERATOR FAMILY           ROLLBACK
  CREATE POLICY                    ROLLBACK PREPARED
  CREATE PROCEDURE                 ROLLBACK TO SAVEPOINT
  CREATE PUBLICATION               SAVEPOINT
  CREATE ROLE                      SECURITY LABEL
  CREATE RULE                      SELECT
  CREATE SCHEMA                    SELECT INTO
  CREATE SEQUENCE                  SET
  CREATE SERVER                    SET CONSTRAINTS
  CREATE STATISTICS                SET ROLE
  CREATE SUBSCRIPTION              SET SESSION AUTHORIZATION
  CREATE TABLE                     SET TRANSACTION
  CREATE TABLE AS                  SHOW
  CREATE TABLESPACE                START TRANSACTION
  CREATE TEXT SEARCH CONFIGURATION TABLE
  CREATE TEXT SEARCH DICTIONARY    TRUNCATE
  CREATE TEXT SEARCH PARSER        UNLISTEN
  CREATE TEXT SEARCH TEMPLATE      UPDATE
  CREATE TRANSFORM                 VACUUM
  CREATE TRIGGER                   VALUES
  CREATE TYPE                      WITH

db1=>
db1=> \h create type
命令:       CREATE TYPE
描述:       建立新的数据类型
语法:
CREATE TYPE 名称 AS
    ( [ 属性_名称 数据_类型 [ COLLATE 校对规则 ] [, ... ] ] )

CREATE TYPE 名称 AS ENUM
    ( [ '标签' [, ... ] ] )

CREATE TYPE 名称 AS RANGE (
    SUBTYPE = 子类型
    [ , SUBTYPE_OPCLASS = subtype_operator_class(子类型_操作符_类) ]
    [ , COLLATION = 校对规则 ]
    [ , CANONICAL = 标准_函数 ]
    [ , SUBTYPE_DIFF = subtype_diff_function(子类型_区分_函数) ]
    [ , MULTIRANGE_TYPE_NAME = multirange_type_name ]
)

CREATE TYPE 名称 (
    INPUT = 输入_函数,
    OUTPUT = 输出_函数
    [ , RECEIVE = 接收_函数 ]
    [ , SEND = 发送_函数 ]
    [ , TYPMOD_IN = 类型修改器数组输入函数名称 ]
    [ , TYPMOD_OUT = 类型修改器输出函数名称 ]
    [ , ANALYZE = 分析_函数 ]
    [ , SUBSCRIPT = subscript_function ]
    [ , INTERNALLENGTH = { 内部长度 | VARIABLE } ]
    [ , PASSEDBYVALUE ]
    [ , ALIGNMENT = 顺序排列(alignment) ]
    [ , STORAGE = 存储 ]
    [ , LIKE = LIKE类型(like_type) ]
    [ , CATEGORY = 类型 ]
    [ , PREFERRED = 优先 ]
    [ , DEFAULT = 默认 ]
    [ , ELEMENT = 成员项 ]
    [ , DELIMITER = 分隔符 ]
    [ , COLLATABLE = 要校对的 ]
)

CREATE TYPE 名称

URL: https://www.postgresql.org/docs/14/sql-createtype.html


db1=>

四、docker_dbclient远程连接sqlserver

[root@d05746c0a57f /]# mssql-cli -S ip -U username -P password

说明:

运行mssql-cli
   mssql-cli的使用跟mysql很像,不过参数有所区别。
   -S或--server 指定服务器地址,如果是默认的1433端口,那么不写也行;如果是其他端口的话,在后面加逗号和端口就行。
   -U或--username 指定用户名
   -P或--password 指定密码

[root@d05746c0a57f /]# mssql-cli -S 1.1.1.153 -U SA -P password
master> use test
Time: 0.252s
Commands completed successfully.
test> SELECT * FROM "phone_table" TABLES;
Time: 0.504s
+------+-------------+------------+----------------+
| id   | phone       | name       | ip             |
|------+-------------+------------+----------------|
| 1    | 17689898989 | hhhhhhhhhhhh | 192.168.1.34 |
| 2    | 17645454545 | aaaaaaaaa    | 192.168.1.35 |
| 3    | NULL        | NULL       | NULL           |
| 4    | NULL        | NULL       | NULL           |
+------+-------------+------------+----------------+
(4 rows affected)
test>

你可能感兴趣的:(docker,mysql,docker,oracle,postgresql,mssql)