当前位置: 首页 > news >正文

数据库必知必会:TiDB(12)TiDB连接管理

数据库必知必会:TiDB(12)TiDB连接管理

  • TiDB连接管理
    • TiDB的连接特性
    • 连接TiDB
      • MySQL命令行客户端
      • 图形界面客户端连接
      • 其他连接方式
  • 写在后面

TiDB连接管理

TiDB的连接特性

TiDB Server主要负责接收用户的会话请求,接收SQL并负责SQL语句的解析、编译,生成SQL的执行计划。TiDB Server并不存储数据,所以TiDB的连接是无状态的,用户连接的TiDB Server节点出现问题后,用户会话将会丢失,但其他节点的会话不受影响,丢失会话的用户需要重新连接到其他TiDB Server节点,重新执行SQL。

TiDB完全兼容MySQL 5.7协议,支持MySQL 5.7规范支持的常用SQL语句,但是不支持以下语句:

  • 存储过程
  • 自定义函数
  • 触发器
  • 外键
  • CTAS语法(create table … as select … from …)

连接TiDB

MySQL命令行客户端

TiDB完全兼容MySQL 5.7,所以TiDB可以使用MySQL客户端进行连接。

首先,在服务器上安装MySQL客户端,命令为:

sudo apt-get install mysql-client

安装过程:

wux_labs@wux-labs-vm:~$ sudo apt-get install mysql-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:mysql-client-8.0 mysql-client-core-8.0 mysql-common
The following NEW packages will be installed:mysql-client mysql-client-8.0 mysql-client-core-8.0 mysql-common
0 upgraded, 4 newly installed, 0 to remove and 6 not upgraded.
Need to get 5196 kB of archives.
After this operation, 75.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client-core-8.0 amd64 8.0.32-0ubuntu0.20.04.2 [5157 kB]
Get:2 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 mysql-common all 5.8+1.0.5ubuntu2 [7496 B]
Get:3 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client-8.0 amd64 8.0.32-0ubuntu0.20.04.2 [22.0 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 mysql-client all 8.0.32-0ubuntu0.20.04.2 [9364 B]
Fetched 5196 kB in 1s (10.1 MB/s)      
Selecting previously unselected package mysql-client-core-8.0.
(Reading database ... 84042 files and directories currently installed.)
Preparing to unpack .../mysql-client-core-8.0_8.0.32-0ubuntu0.20.04.2_amd64.deb ...
Unpacking mysql-client-core-8.0 (8.0.32-0ubuntu0.20.04.2) ...
Selecting previously unselected package mysql-common.
Preparing to unpack .../mysql-common_5.8+1.0.5ubuntu2_all.deb ...
Unpacking mysql-common (5.8+1.0.5ubuntu2) ...
Selecting previously unselected package mysql-client-8.0.
Preparing to unpack .../mysql-client-8.0_8.0.32-0ubuntu0.20.04.2_amd64.deb ...
Unpacking mysql-client-8.0 (8.0.32-0ubuntu0.20.04.2) ...
Selecting previously unselected package mysql-client.
Preparing to unpack .../mysql-client_8.0.32-0ubuntu0.20.04.2_all.deb ...
Unpacking mysql-client (8.0.32-0ubuntu0.20.04.2) ...
Setting up mysql-common (5.8+1.0.5ubuntu2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Setting up mysql-client-core-8.0 (8.0.32-0ubuntu0.20.04.2) ...
Setting up mysql-client-8.0 (8.0.32-0ubuntu0.20.04.2) ...
Setting up mysql-client (8.0.32-0ubuntu0.20.04.2) ...
Processing triggers for man-db (2.9.1-1) ...
wux_labs@wux-labs-vm:~$ 

image-20230218215753201

安装完成后,确保mysql命令可以使用。

image-20230218215847032

MySQL命令行客户端连接数据库的语法为:

mysql -h ${host} -P ${port} -u ${username} -p ${password}

对于TiDB:

  • ${host}是TiDB Server的主机地址
  • ${port}是TiDB Server的服务端口,默认配置是 4000

给定具体参数值,连接TiDB Server:

mysql -hwux-labs-vm -P4000 -uroot -p'@2XKr^+9&nNZ3U07q6'

连接过程:

wux_labs@wux-labs-vm:~$ mysql -hwux-labs-vm -P4000 -uroot -p'@2XKr^+9&nNZ3U07q6'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 459
Server version: 5.7.25-TiDB-v6.1.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatibleCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

image-20230218220414486

这样就连接上了TiDB集群了。接下来可以执行一些命令。

  • 查看当前已有的库
show databases;

image-20230218220638736

当前默认创建了一个数据库test。

  • 切换数据库
use test;

image-20230219152048439

  • 查看表
show tables test;

当前没有表,所以是空的。

image-20230219152135338

  • 创建表
create table dept(id int,name varchar(100)
);

image-20230219152231945

  • 插入数据
insert into dept values(1, 'Labs');

image-20230219152414831

  • 查询数据
select * from dept;

image-20230219152431912

  • 修改用户密码
set password = password('tidb');

image-20230219152518024

  • 查询已有用户
select user,host,authentication_string from mysql.user;

image-20230219152707643

图形界面客户端连接

除了使用MySQL命令行工具连接TiDB,还可以使用图形界面客户端工具。

本文使用DataGrip作为图形界面客户端做演示,其他还有很多图形界面客户端也是支持的。

通过添加数据源菜单,选择MySQL数据源。

image-20230219153057010

在数据源配置界面输入TiDB的连接信息,注意端口是4000。

image-20230219153405966

点击Test Connection连接测试连接,确保连接成功。

image-20230219153503614

连接成功后,可以执行相关的命令、语句。

  • 查看当前已有的数据库
show databases;

image-20230219153724095

  • 切换数据库
use test;

执行完成后,当前数据库将会切换成test。

image-20230219154012158

  • 查询数据
select * from dept;

执行完成后,将以表格形式显示查询结果。

image-20230219154138060

其他连接方式

TiDB支持的连接器和API:

  • MySQL Connector/Net
  • MySQL Connector/ODBC
  • MySQL Connector/Python
  • MySQL C API
  • MySQL PHP API
  • MySQL Python API
  • MySQL GO API

写在后面

TiDB完全兼容MySQL 5.7协议,因此支持的客户端连接工具比较多,选择一个自己喜欢的客户端用起来吧。

http://www.lryc.cn/news/14278.html

相关文章:

  • 电源大事,阻抗二字
  • ASE20N60-ASEMI的MOS管ASE20N60
  • nginx 代理01(持续更新)
  • 初阶C语言——操作符【详解】
  • 37k*16 薪,年后直接上岗,3年自动化测试历经3轮面试成功拿下阿里Offer....
  • 利用Rust与Flutter开发一款小工具
  • 零入门kubernetes网络实战-16->使用golang给docker环境下某个容器里添加一个额外的网卡
  • 音频信号处理笔记(二)
  • 钓鱼网站+bypassuac提权
  • 合并两个有序链表——递归解法
  • ADRC自抗扰控制总结
  • 3年工作之后是不是还在“点点点”,3年感悟和你分享....
  • 【自动化测试】web自动化测试验证码如何测?如何处理验证码问题?解决方案......
  • 面试浅谈之 C++ STL 篇
  • 【PTA Advanced】1144 The Missing Number(C++)
  • oracle的sqlnet.ora文件配置传输加密算法
  • RK3568存储性能测试
  • Homekit智能家居一智能灯泡
  • 轻量级 Java 权限认证框架——Sa-Token
  • 算法复习(四、五、六)
  • SORT与DeepSORT简介
  • TCP/IP网络编程——多播与广播
  • K8S DNS解析过程和延迟问题
  • 【JavaScript】js实现深拷贝的方法
  • RK3288 GPIO记录
  • MongoDB介绍及使用教程
  • 51单片机开发环境搭建 - VS Code 从编写到烧录
  • python datetime、字符串和时间戳之间的相互转换12小时制和24小时制时间相互转化
  • 百度百科词条怎么做?百度百科词条创建攻略分享
  • 基于Hive的河北新冠确诊人数分析系统的设计与实现