暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

tidb使用笔记

原创 数据库管理员陆美芳 2023-11-20
707

账号权限管理

修改root账号的密码

update mysql.user set authentication_string=password(‘新密码’) where user=‘root’ and Host = ‘%’;

创建账号 账号名/密码

CREATE USER ‘账号名’@’%’ IDENTIFIED BY ‘密码’;
GRANT all privileges on wk_crm_single.* TO ‘账号名’@’%’;

tidb同步数据到kafka

创建 changefeed 任务

/tidb-deploy/cdc-8300/bin/cdc cli changefeed create --server=http://192.168.xx.50:8300 --sink-uri=“kafka://192.168.xx.221:9092/wk_crm_single?kafka-version=2.6.0&partition-num=1&max-message-bytes=67108864&replication-factor=1&protocol=canal-json” --changefeed-id=“replication-task-test” --config="/opt/tidb/changefeed.conf"

配置文件/opt/tidb/changefeed.conf内容如下:
[root@localhost keepalived]# cat /opt/tidb/changefeed.conf
[filter]
rules = [‘wk_crm_single.*’] #指定只监听某个库wk_crm_single的所有表

[sink]

only-output-updated-columns = true # 这个参数实现只展示数据变化的字段

查看同步任务列表

/tidb-deploy/cdc-8300/bin/cdc cli changefeed list --server=http://192.168.xx.50:8300

查看特定同步任务

/tidb-deploy/cdc-8300/bin/cdc cli changefeed query -s --server=http://192.168.xx.50:8300 --changefeed-id=replication-task-test

停止同步任务

/tidb-deploy/cdc-8300/bin/cdc cli changefeed pause --server=http://192.168.xx.50:8300 --changefeed-id replication-task-test

删除 changefeed 任务

/tidb-deploy/cdc-8300/bin/cdc cli changefeed remove --server=http://192.168.xx.50:8300 --changefeed-id replication-task-test

MySQL迁移到tidb

在tidb部署机器上安装MySQL客户端

yum install mysql -y

导出MySQL

mysqldump --host=192.168.xx.126 -uMySQL账号 -p密码 --default-character-set=utf8mb4 --quick --single-transaction --databases 库名> wk_crm_single_date +%Y%m%d%H%M%S.sql

导入tidb

mysql -h192.168.xx.200 -P3390 -uroot -p密码 < oms_20230816101120.sql #注意:数据库需要先建好

tiflash使用

构建tiflash副本:

ALTER TABLE test.invoice_info SET TIFLASH REPLICA 2;

查看副本构建进度:

SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘test’ and TABLE_NAME = ‘invoice_info’;

更多关于副本的详情请查看官方文档:https://docs.pingcap.com/zh/tidb/stable/create-tiflash-replicas

阻塞处理

查看当前连接

show processlist;
4393611081224695729 kfpt_user 192.168.56.143:53952 blockchain_invoice Sleep 1236 autocommit
4393611081224696383 kfpt_user 192.168.0.89:36162 infomation_oa Sleep 1027 autocommit
4393611081224699091 kfpt_user 192.168.56.141:41870 op_authority Sleep 154 autocommit

杀掉引起阻塞的连接

kill 4393611081224695729 # 假设是这行引起阻塞

高可用配置后无法访问 tidb dashboard的解决办法

修改tidb配置

tiup cluster edit-config tidb-test
添加如下参数:
server_configs:
tidb:
proxy-protocol.networks: 192.168.xx.50,192.168.xx.51,192.168.xx.49
proxy-protocol.fallbackable: true #这行是本次新增

重启tidb

tiup cluster reload tidb-test -R tidb
更多详情查看官网文档:https://docs.pingcap.com/zh/tidb/v7.4/tidb-configuration-file#fallbackable-span-classversion-mark%E4%BB%8E-v651-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span

错误 [1105] 的解决方法

问题描述:创建索引等待超过140多秒后报错如下
SQL 错误 [1105] [HY000]: DDL job rollback, error msg: sort path: /tmp/tidb/tmp_ddl-4000, disk usage: 50568310784/53660876800, backend usage: 0, please clean up the disk and retry
百度翻译下,看出来,猜测跟空间不足有关,于是申请扩展了磁盘空间,果然!空间扩展后,再执行创建索引语句,3秒左右执行成功!!!

mysqldump导出tidb数据

遇到问题

mysqldump: Couldn’t execute ‘ROLLBACK TO SAVEPOINT sp’: SAVEPOINT sp does not exist (1305)

原因:

导出命令使用的是:
docker exec -i mysql3307 mysqldump --host=IP -u账号 -p密码 -P断开 --quick --single-transaction --databases $DbName > $SqlDataFile
通过百度,搜到文章提示:
Don’t use --lock-tables=false with --single-transaction because MySQL Documentation says “The --single-transaction option and the --lock-tables option are mutually exclusive because LOCK TABLES causes any pending transactions to be committed implicitly.”
知道了大概是因为 --quick --single-transaction 这些参数导致的,去掉后果然没再报

解决方法,修改导出命令如下即可

docker exec -i mysql3307 mysqldump --host=IP -u账号 -p密码 -P断开 --databases $DbName > $SqlDataFile

最后修改时间:2024-02-02 13:53:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论