2024年最全猿创征文|分布式国产数据库 TiDB 从入门到实战_查看tidb版本(4)

本文详细介绍了TiDB集群的部署、组件启动、客户端访问、监控和SQL操作,以及如何在SpringBoot应用中整合TiDB,包括数据库操作、索引管理、用户权限设置和JDBC连接。
摘要由CSDN通过智能技术生成

执行集群部署命令:

tiup cluster deploy my-tidb v6.3.0 ./topo.yaml --user root -p

此命令需要在 topo.yaml 目录执行

执行后,会提示让你输入 SSH 密码,也就是你的登录密码。

$ tiup cluster deploy my-tidb v6.3.0 ./topo.yaml --user root -p
tiup is checking updates for component cluster ...
Starting component `cluster`: /root/.tiup/components/cluster/v1.11.0/tiup-cluster deploy my-tidb v6.3.0 ./topo.yaml --user root -p
Input SSH password:

然后根据提示,输入 y 后,等待部署完成

Do you want to continue? [y/N]: (default=N)

安装程序跑完后,记得看一下是否所有的组件都成功安装,如果安装失败,根据提示查看日志进行解决。

7)、启动集群

命令格式:

tiup cluster start <cluster-name>

执行命令:

tiup cluster start my-tidb

8)、客户端访问

一定要关闭防火墙在进行测试

使用 Navicat 客户端连接工具,选择MySQL方式连接。连接成功。

在这里插入图片描述

使用 SQLyog 也可以连接成功。

在这里插入图片描述

9)、Grafana 监控页面

访问地址:

http://IP:3000

默认用户名和密码均为 admin

在这里插入图片描述

10)、TiDB 的 Dashboard

访问地址:

http://IP:2379/dashboard

默认用户名为 root,密码为空。

在这里插入图片描述
在这里插入图片描述

有很多实用的功能,可以查看 QPS、慢查询、流量查询等。可以帮助我们快速的定位问题。

四、SQL 基本操作

安装好 TiDB 后,便可以在 TiDB 中执行 SQL 语句了。我这里直接使用大家常用的 Navicat 进行操作了。

因为 TiDB 兼容 MySQL,我们可以像操作 MySQL 一样操作 TiDB。

4.1、库操作

1)、查看数据库列表

SHOW DATABASES;

在这里插入图片描述

2)、创建数据库

CREATE DATABASE IF NOT EXISTS my_db;

添加 IF NOT EXISTS 可防止发生错误。

3)、切换数据库

USE my_db;

4)、删除数据库

DROP DATABASE my_db;

5)、查看数据库下所有的表

SHOW TABLES FROM my_db;

4.2、表操作

1)、创建表

语法格式:

CREATE TABLE table_name column_name data_type constraint;

创建 sys_user

CREATE TABLE sys_user (
    id INT(11),
    name VARCHAR(255),
    birthday DATE
);

2)、删除表

DROP TABLE sys_user;

3)、插入数据

两种方式

INSERT INTO sys_user VALUES(1,'tom','20221008');

INSERT INTO sys_user(id,name) VALUES('2','bob');

4)、查询数据

SELECT \* FROM sys_user;

5)、修改数据

UPDATE sys_user SET birthday='20221009' WHERE id=2;

6)、删除数据

DELETE FROM sys_user WHERE id=2;

4.3、索引操作

1)、普通索引

两种方式

CREATE INDEX sys_user_id ON sys_user (id);

ALTER TABLE sys_user ADD INDEX sys_user_id (id);

2)、唯一索引

两种方式

CREATE UNIQUE INDEX sys_user_unique_id ON sys_user (id);

ALTER TABLE sys_user ADD UNIQUE sys_user_unique_id (id);

3)、查看表内索引

SHOW INDEX FROM sys_user;

4)、删除索引

两种方式

DROP INDEX sys_user_id ON sys_user;

ALTER TABLE sys_user DROP INDEX sys_user_unique_id;

4.4、用户操作

1)、创建用户

创建用户 micromaple ,密码 123456

CREATE USER 'micromaple'@'localhost' IDENTIFIED BY '123456';

2)、授权用户

授权用户 micromaple 可检索数据库 my_db 内的表:

GRANT SELECT ON my_db.\* TO 'micromaple'@'localhost';

授权所有权限:

GRANT ALL PRIVILEGES ON \*.\* TO 'micromaple'@'localhost';

3)、查询权限

SHOW GRANTS for micromaple@localhost;

4)、删除用户

DROP USER 'micromaple'@'localhost';

5)、设置用户远程访问

update mysql.user set host = '%' where user = 'micromaple';
FLUSH PRIVILEGES;

五、SpringBoot 整合

TiDB 对于 JDBC 的支持等级是 Full。也就是全量支持。

我们只需要引入 Java JDBC 驱动程序即可使用。

官方说明:强烈建议使用 JDBC 5.1 的最后一个版本 5.1.49。因为当前 8.0.29 版本有未合并的Bug 修复,在与 TiDB 共同使用时可能会导致线程卡死。在 MySQL JDBC 8.0 未合并此修复之前,建议不要升级至 8.0 版本。

Maven 引入依赖

<!-- Junit -->
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<scope>test</scope>
</dependency>
<!-- Spring Web -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>
<!-- MySQL Drivers -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.49</version>
</dependency>
<!-- JDBC -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-boot-starter</artifactId>
	<version>3.5.2</version>
</dependency>
<!-- lombok -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>

application.yml 配置:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://192.168.110.134:4000/my_db?useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password:

启动类增加注解,扫描mapper

@MapperScan(value = "com.micromaple.tidb.mapper")

SysUser 实体类

package com.micromaple.tidb.domain;

import lombok.Data;

import java.util.Date;

@Data
public class SysUser {
    /\*\*
 \* 主键ID
 \*/
    private Integer id;
    
    /\*\*
 \* 姓名
 \*/
    private String name;
    
    /\*\*
 \* 生日
 \*/
    private Date birthday;
    
}

SysUserMapper

package com.micromaple.tidb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.micromaple.tidb.domain.SysUser;
import org.springframework.stereotype.Repository;

@Repository
public interface SysUserMapper extends BaseMapper<SysUser> {
    
}

编写测试类,测试新增和查询

package com.micromaple.tidb;

import com.micromaple.tidb.domain.SysUser;
import com.micromaple.tidb.mapper.SysUserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Date;
import java.util.List;


![img](https://img-blog.csdnimg.cn/img_convert/ac78023017b0712d1a09f9e06632d441.png)
![img](https://img-blog.csdnimg.cn/img_convert/39502249427f2956c23c1a73fdf4a00c.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

it.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Date;
import java.util.List;


[外链图片转存中...(img-b3qcrivD-1714678869149)]
[外链图片转存中...(img-cZuqaoB6-1714678869150)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值