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

article/2025/9/21 2:01:50

数据库必知必会: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://chatgpt.dhexx.cn/article/0KWhkX8D.shtml

相关文章

TiDB 数据库的存储

本文主要介绍 TiKV 的一些设计思想和关键概念。 Key-Value Pairs(键值对) 作为保存数据的系统,首先要决定的是数据的存储模型,也就是数据以什么样的形式保存下来。TiKV 的选择是 Key-Value 模型,并且提供有序遍历方法…

TiDB-新一代数据库入门介绍

由于目前的项目计划把MySQL换成TiDB,所以特意来了解下TiDB。其实也不能说换,由于TiDB和MySQL几乎完全兼容,所以我们的程序可以没有任何改动就完成数据库从MySQL到TiDB的转换。接下来了解一下TiDB,为将来的技术选型做个准备。 一、…

TIDB数据库特性总结

文章目录 前言一、TIDB数据库介绍1.1数据管理技术发展阶段1.2 数据库分类1.2 如何学习TiDB 二、TIDB特点和使用场景2.1.MySQL存在问题2.2.TiDB数据库特点2.3TIDB架构特性2.4 TiDB 核心特性2.4.1水平扩展性2.4.2高可用性 2.5 TIDB的存储和计算能力2.6 TIDB特性总结 3 TIDB部署总…

TIDB整体架构

TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件和简化云上部署管理的 TiDB Operator 组件。 架构图解 TiDB Server TiDB Server 负责接收 SQL 请求,处…

TIDB简单了解

官方文档 TIDB HTAPTIDB HATP 基础概念: TIDB应用场景(优势)体系结构TIDB的管理及调度-PDTIDB链接层和SQL层-TIDB Server存储节点TIKVKVRocksDBRaft协议主副本选举日志复制 RegionMVCCACID事务 TiFlash HTAP 先为大家推荐一篇文章 https://…

TiDB数据库架构概述

目录 TiDB体系架构 TiDB Server TiKV(行存) PD (Placement Driver) TiFlash(列存) 例题 TiDB体系架构 TiDB Server TiDB Server是无状态的 无状态,指数据不在TiDB中落地,即TiD…

TIDB介绍(二)

参考文章:专栏 - 国产化浪潮下TiDB解决的痛点问题 | TiDB 社区 1 前言 随着国内互联网企业的快速发展,传统的oracle数据库架构在成本和扩展性上已不能满足要求,更多的企业将目光转向了开源的MySQL数据库,由于MySQL本身是一个…

分布式数据库——TiDB的介绍和基本原理

1、TiDB 介绍 1.1 TiDB 介绍 1.1.1 TiDB 是什么? TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景(on-line trans…

15分钟了解TiDB

由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺…

TIDB简介及基础架构

1. 什么是TIDB TiDB 是一个分布式 NewSQL 数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 1.1 什么是NewSQL SQL,传统关…

(一)TiDB简介

TiDB是PingCAP公司自主设计、研发的开放源分布式关系型数据库(NewSQL),是一个款同时支持在线事务处理与在线分析处理(Hybird Transactional and Analytical Processing,HTAP)的融合型分布式数据库产品。 目标是为用户提供一站式OLTP(Online T…

TiDB原理解析

TiDB是PingCAP公司设计的开源分布式NewSQL数据库。由于它兼容MySQL协议,并支持绝大多数SQL功能(比如joins,subqueries, transaction等)。业务能够直接通过MySQL connector去使用它来替换MySQL。TiDB适合场景: 数据量大…

TiDB 简介(二)

参考:TiDB 简介_福海鑫森的博客-CSDN博客_tidb开发语言 TiDB 简介 | PingCAP Docs TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的…

TiDB入门+深入

目录 一、概述 1、从MySQL到TiDB 2、简介 1、OLTP和OLAP 3、TiDB整体架构 4、TiDB安装部署 开发及测试环境 生产环境 5、TiDB-读取历史数据 6、数据迁移-TiDB Lightning 一、概述 数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库…

TIDB简介及TIDB部署、原理和使用介绍

TiDB简介及TiDB部署、原理和使用介绍 从MySQL架构到TiDB 数据库分类 ​ 介绍TiDB数据库之前,先引入使用场景。如今的数据库种类繁多,RDBMS(关系型数据库)、NoSQL(Not Only SQL)、NewSQL,在数…

JAVA注解学习-@Documented注解

这个注解只是用来标注生成javadoc的时候是否会被记录。 用法 在自定义注解的时候可以使用Documented来进行标注,如果使用Documented标注了,在生成javadoc的时候就会把Documented注解给显示出来。 带Documented生成的javadoc 不带Documented生成的java…

DocumentFragment

文章目录 1. 描述2. 使用 1. 描述 DocumentFragments 是DOM节点。通常的用例是创建文档片段,将元素附加到文档片段,然后将文档片段附加到DOM树。在DOM树中,文档片段被其所有的子元素所代替。 因为文档片段存在于内存中,并不在DO…

java 注解示例(@Documented)

java 注解示例(Documented) 作用:生成文档信息的时候保留注解,对类作辅助说明 *************************** 示例 Documented interface B{String value() default "这是一个自定义类"; }B public class MyTest2 {publ…

document.documentElement与document.body

写前端时遇到这两种方法&#xff0c;转载待以后查看。 两种特殊的文档属性可用来访问根节点&#xff1a; document.documentElementdocument.body 第一个属性可返回存在于 XML 以及 HTML 文档中的文档根节点。 第二个属性是对 HTML 页面的特殊扩展&#xff0c;提供了对 <…

@Documented注解作用

Documented注解作用 验证步骤1. 编写 注解 类2. 执行Javadoc命令生成文档3. 查看IService类文档信息4. 取消// Documented 注解 生成文档并查看 总结 验证步骤 1. 编写 注解 类 // 第一个文件 package com.example.zhaohuiweb;import java.lang.annotation.Documented; imp…