本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群。Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止。
注:对于生产环境,不要使用 Docker Compose 进行部署,而应使用 Ansible 部署 TiDB 集群。
确保你的机器上已安装:
git clone https://github.com/pingcap/tidb-docker-compose.git /tmp/docker/tidb/
cd tidb-docker-compose && docker-compose pull # Get the latest Docker images
docker-compose up -d
mysql -h 127.0.0.1 -uroot -P 4000
访问集群 Grafana 监控页面:http://cdh01:3000 默认用户名和密码均为 admin。
集群数据可视化:http://cdh01:8010
$ docker-compose exec tispark-master bash
$ cd /opt/spark/data/tispark-sample-data
$ mysql -h tidb -P 4000 -u root < dss.ddl
docker-compose exec tispark-master /opt/spark/bin/spark-shell
import org.apache.spark.sql.TiContext ##导入TiContext包
val ti1 = new TiContext(spark) ##使用什么语言(这里是spark)
ti1.tidbMapDatabase("TPCH_001") ##使用TiDB中的哪个数据库
如上图所示:样例数据测试成功!
spark.sql(
| """select | | l_returnflag, | | l_linestatus, | | sum(l_quantity) as sum_qty, | | sum(l_extendedprice) as sum_base_price, | | sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, | | sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, | | avg(l_quantity) as avg_qty, | | avg(l_extendedprice) as avg_price, | | avg(l_discount) as avg_disc, | | count(*) as count_order | |from | | lineitem | |where | | l_shipdate <= date '1998-12-01' - interval '90' day | |group by | | l_returnflag, | | l_linestatus | |order by | | l_returnflag, | | l_linestatus | """.stripMargin).show
测试结果如下:
TiDB 将用户账户存储在 mysql.user 系统表里面。每个账户由用户名和 host 作为标识。每个账户可以设置一个密码。
通过 MySQL 客户端连接到 TiDB 服务器,通过指定的账户和密码登陆:
shell> mysql --port 4000 --user xxx --password
使用缩写的命令行参数则是:
shell> mysql -P 4000 -u xxx -p
添加用户有两种方式:
下面的例子用 CREATE USER 和 GRANT 语句创建了四个账户:
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' WITH GRANT OPTION; mysql> CREATE USER 'finley'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%' WITH GRANT OPTION; mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass'; mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; mysql> CREATE USER 'dummy'@'localhost';
mysql> DROP USER 'jeffrey'@'localhost';
SET PASSWORD FOR 'root'@'%' = 'r!o@o#t$>?.123';
在 CREATE USER 创建用户时可以通过 IDENTIFIED BY 指定密码:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
为一个已存在的账户修改密码,可以通过 SET PASSWORD FOR 或者 ALTER USER 语句完成:
SET PASSWORD FOR 'root'@'%' = 'xxx';
或者
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
如果授权表已被直接修改,运行如下命令可使改动立即生效:
FLUSH PRIVILEGES;
TiDB 修改 sql_mode 在 TIDB 安装路径下的 config 下面的 tidb.toml 中添加如下语句即可
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43129750/article/details/103230704
内容来源于网络,如有侵权,请联系作者删除!