账号权限管理
修改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




