{"id":384,"date":"2021-09-07T00:00:00","date_gmt":"2021-09-07T00:00:00","guid":{"rendered":"https:\/\/en.pingcap.com\/blog\/easy-local-development-with-tidb\/"},"modified":"2025-03-04T06:55:54","modified_gmt":"2025-03-04T14:55:54","slug":"easy-local-development-with-tidb","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/","title":{"rendered":"Easy Local Development with TiDB"},"content":{"rendered":"<p>When you develop an application, you begin by coding and testing in your local environment. Many applications interface with a database, so in this early stage you might use SQLite rather than the database brand used in production. This is an issue, however, because ideally you want to develop the application with the production database in mind.<\/p>\n<p>When using a distributed system setting up and starting\/stopping the components needed for this can become error prone and time consuming.<\/p>\n<p>In this article, I&#8217;ll explain how you can develop your application locally and use the type of database used in production. In this case, <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\">\ud2f0DB<\/a>, a distributed SQL database platform that features horizontal scalability, strong consistency, and high availability, is an excellent choice.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"A_quick_overview_of_TiDB\"><\/span>A quick overview of TiDB<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>TiDB is a relational database that is compatible with the MySQL protocol and syntax and can easily scale beyond a single machine by dividing the data over multiple machines. This also makes it resilient to machine failures.<\/p>\n<p>If you have seen pictures of the <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tidb-architecture\">TiDB architecture<\/a>, you know that it consists of many components, including the TiDB server, TiKV, a transaction, key-value database, and the Placement Driver (PD), which manages metadata. For a production setup you&#8217;ll need multiple instances of each component.<\/p>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-25523\" src=\"https:\/\/static.pingcap.com\/files\/2021\/09\/04065541\/tidb-distributed-architecture.jpg\" alt=\"tidb-distributed-architecture\" width=\"1202\" height=\"594\" srcset=\"https:\/\/static.pingcap.com\/files\/2021\/09\/04065541\/tidb-distributed-architecture.jpg 1202w, https:\/\/static.pingcap.com\/files\/2021\/09\/04065541\/tidb-distributed-architecture-300x148.jpg 300w, https:\/\/static.pingcap.com\/files\/2021\/09\/04065541\/tidb-distributed-architecture-1024x506.jpg 1024w, https:\/\/static.pingcap.com\/files\/2021\/09\/04065541\/tidb-distributed-architecture-768x380.jpg 768w\" sizes=\"auto, (max-width: 1202px) 100vw, 1202px\" \/>\n<div class=\"caption-center\">TiDB architecture<\/div>\n<p>A scalable, highly available distributed system like TiDB runs multiple components on multiple hosts. For production setups this is not a problem as there are good tools to manage this: TiDB Operator for Kubernetes and <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tiup-component-cluster\">TiUP Cluster<\/a>.<\/p>\n<p>When you develop and test your work, you may have a cluster that has a similar setup as production. However, if you want to test against new versions of TiDB or if your development interferes with what other developers are doing, this may not work. Also, if you are traveling you may not have an internet connection or have an unreliable connection.<\/p>\n<p>Setting up a local copy of a distributed system can be a complex task because there are multiple components and there also might be OS settings to manage. Also, running multiple instances of a component can easily result in conflicts on TCP ports or filesystem paths.<\/p>\n<p>Another good use of a local cluster is to test certain operations before doing them in production. This includes learning basic tasks like upgrading your application and backing and restoring the database.<\/p>\n<p>So let&#8217;s look into some of the options for local development. Some of these can also be used for CI jobs where you need a database.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Install_TiUP_and_start_a_TiDB_Playground\"><\/span>Install TiUP and start a TiDB Playground<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>TiUP is the tool to use to manage TiDB installations, both in production and for local development. One of the things TiUP can do is to set up a playground, with this TiUP will download the components that you need and configure and start them so that you get a local environment. This works on macOS, Linux and on Windows with WSL.<\/p>\n<p>The playground gives you a TiDB installation to work with including the TiDB Dashboard and a set of Grafana dashboards.<\/p>\n<p>To install TiUP run:<\/p>\n<pre><code>curl --proto '=https' --tlsv1.2 -sSf https:\/\/tiup-mirrors.pingcap.com\/install.sh | sh\n<\/code><\/pre>\n<p>Once TiUP is installed you can start a playground:<\/p>\n<pre><code>tiup playground\n<\/code><\/pre>\n<p>These steps are available on <a href=\"https:\/\/tiup.io\/\">https:\/\/tiup.io<\/a>.<\/p>\n<img loading=\"lazy\" decoding=\"async\" width=\"1416\" height=\"1000\" class=\"wp-image-385\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2021\/09\/tiup-playground.jpg\" alt=\"TiUP Playground\" srcset=\"https:\/\/static.pingcap.com\/files\/2021\/09\/tiup-playground.jpg 1416w, https:\/\/static.pingcap.com\/files\/2021\/09\/tiup-playground-300x212.jpg 300w, https:\/\/static.pingcap.com\/files\/2021\/09\/tiup-playground-1024x723.jpg 1024w, https:\/\/static.pingcap.com\/files\/2021\/09\/tiup-playground-768x542.jpg 768w\" sizes=\"auto, (max-width: 1416px) 100vw, 1416px\" \/>\n<div class=\"caption-center\">TiUP Playground<\/div>\n<p>In the output of the <code>tiup playground<\/code> command as shown above you can see the information about how to connect to the playground with a MySQL client and also the URLs for the TiDB Dashboard and Grafana.<\/p>\n<p>Additional tips for working with playgrounds:<\/p>\n<ul>\n<li>You can specify the version you want to run with <code>tiup playground v4.0.14<\/code> for example.<\/li>\n<li>With <code>tiup -T myapp playground<\/code> you can put a nametag on the playground. This is useful when you use multiple playgrounds. This also allows you to more easily find the data directory of the playground to inspect the logs etc. For example with the &#8220;myapp&#8221; tag you can find the datadir on <code>~\/.tiup\/data\/myapp<\/code> with subdirectories for the various components. Setting a tag also lets you keep the data after stopping the playground.<\/li>\n<li>The <code>tiup playground<\/code> command has options to set the number of instances per component. This can be used to set the number of TiFlash instances to 0 in case you for example don&#8217;t intend to use the HTAP functionality.<\/li>\n<li>You can add <code>--monitor=false<\/code> if you don&#8217;t want to use monitoring tools like Grafana and Prometheus. This is useful if you want to save resources on your local machine.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"TiDE_a_Visual_Studio_Code_extension_for_TiDB\"><\/span>TiDE: a Visual Studio Code extension for TiDB<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you use Visual Studio Code, our <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=dragonly.ticode\">TiDE<\/a> extension lets you work with TiUP Playground, TiUP clusters, and Kubernetes clusters right from your IDE.<\/p>\n<img loading=\"lazy\" decoding=\"async\" width=\"1449\" height=\"865\" class=\"wp-image-386\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2021\/09\/tide-showing-mysql-prompt-and-logging.jpg\" alt=\"TiDE showing a MySQL prompt and logging\" srcset=\"https:\/\/static.pingcap.com\/files\/2021\/09\/tide-showing-mysql-prompt-and-logging.jpg 1449w, https:\/\/static.pingcap.com\/files\/2021\/09\/tide-showing-mysql-prompt-and-logging-300x179.jpg 300w, https:\/\/static.pingcap.com\/files\/2021\/09\/tide-showing-mysql-prompt-and-logging-1024x611.jpg 1024w, https:\/\/static.pingcap.com\/files\/2021\/09\/tide-showing-mysql-prompt-and-logging-768x458.jpg 768w, https:\/\/static.pingcap.com\/files\/2021\/09\/tide-showing-mysql-prompt-and-logging-1440x860.jpg 1440w\" sizes=\"auto, (max-width: 1449px) 100vw, 1449px\" \/>\n<div class=\"caption-center\">TiDE showing a MySQL prompt and logging<\/div>\n<p>This extension gives you a Ti icon on the sidebar of VS Code. If you click this icon you get presented with options for starting a playground and an overview of any running playgrounds. TiDE also supports clusters deployed with TiUP, vagrant, and TiDB Operator for Kubernetes. Besides starting and stopping playgrounds you can also use this to inspect the logs, change the configuration of components and open a MySQL client session right in the terminal pane of VS Code.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Set_up_your_containers_with_Docker_Compose\"><\/span>Set up your containers with Docker Compose<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Use <a href=\"https:\/\/github.com\/pingcap\/tidb-docker-compose\">TiDB Docker Compose<\/a> to set up your containers. This is a useful tool if you already use Docker Compose to manage the containers of the application you are developing.<\/p>\n<p>To setup a set of containers with this tool run the following:<\/p>\n<pre><code>git clone https:\/\/github.com\/pingcap\/tidb-docker-compose.git\ncd tidb-docker-compose &amp;&amp; docker-compose pull \ndocker-compose up -d\n<\/code><\/pre>\n<p>Now you can connect with a MySQL client:<\/p>\n<pre><code>mysql -h 127.0.0.1 -P 4000 -u root --comments\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Use_TiDB_Operator_with_minikube_or_kind\"><\/span>Use TiDB Operator with minikube or kind<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you run TiDB on Kubernetes in production, a good option is to use minikube or kind for local development. This approach teaches you how to work with TiDB Operator. For detailed information on setting up TiDB Operator, see <a href=\"https:\/\/docs.pingcap.com\/tidb-in-kubernetes\/stable\/get-started\">Getting Started with TiDB Operator on Kubernetes<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"A_simple_option_run_a_single_TiDB_instance\"><\/span>A simple option: run a single TiDB instance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can run one instance of TiDB server without TiKV, Placement Driver, TiFlash or any of the other components. In this case, TiDB uses unistore, a local storage engine, as a backend instead of TiKV. By default, TiDB stores data in <code>\/tmp\/tidb<\/code>. For TiDB server you only need a single binary, so this makes deployment easy. However, this approach is quite limited: you won&#8217;t have access to TiDB Dashboard, Grafana, or TiFlash.<\/p>\n<p>To download, extract, and start TiDB server, enter:<\/p>\n<pre><code>wget -q -O - https:\/\/download.pingcap.org\/tidb-v5.1.1-linux-amd64.tar.gz | tar --strip-components 2 -zxf - tidb-v5.1.1-linux-amd64\/bin\/tidb-server\n.\/tidb-server\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Having a complex distributed system doesn&#8217;t need to prevent you from doing local development in the way that fits your needs. There are multiple methods to set up local development environments.<\/p>\n<p>If you have any questions, feel free to contact us on <a href=\"https:\/\/slack.tidb.io\/invite?team=tidb-community&amp;channel=everyone&amp;ref=pingcap\">the TiDB Community Slack channel<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>This post describes how you can develop your application locally and use the type of database used in production.<\/p>","protected":false},"author":20,"featured_media":388,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[13],"tags":[29],"class_list":["post-384","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product","tag-tutorial"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","author_info":{"display_name":"Dani\u00ebl van Eeden","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/daniel-van-eeden\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Easy Local Development with TiDB | TiDB<\/title>\n<meta name=\"description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Easy Local Development with TiDB&quot; here.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Easy Local Development with TiDB | TiDB\" \/>\n<meta property=\"og:description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Easy Local Development with TiDB&quot; here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-07T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-04T14:55:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dani\u00ebl van Eeden\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dani\u00ebl van Eeden\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/\"},\"author\":{\"name\":\"Dani\u00ebl van Eeden\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/e7f356ca823f7aa0615191786b00a4d2\"},\"headline\":\"Easy Local Development with TiDB\",\"datePublished\":\"2021-09-07T00:00:00+00:00\",\"dateModified\":\"2025-03-04T14:55:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/\"},\"wordCount\":1086,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\",\"keywords\":[\"Tutorial\"],\"articleSection\":[\"Product\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/\",\"name\":\"Easy Local Development with TiDB | TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\",\"datePublished\":\"2021-09-07T00:00:00+00:00\",\"dateModified\":\"2025-03-04T14:55:54+00:00\",\"description\":\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \\\"Easy Local Development with TiDB\\\" here.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\",\"width\":1200,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Easy Local Development with TiDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/e7f356ca823f7aa0615191786b00a4d2\",\"name\":\"Dani\u00ebl van Eeden\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Dani\u00ebl van Eeden\"},\"description\":\"Technical Support Engineer\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/daniel-van-eeden\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Easy Local Development with TiDB | TiDB","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Easy Local Development with TiDB\" here.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/","og_locale":"ko_KR","og_type":"article","og_title":"Easy Local Development with TiDB | TiDB","og_description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Easy Local Development with TiDB\" here.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2021-09-07T00:00:00+00:00","article_modified_time":"2025-03-04T14:55:54+00:00","og_image":[{"width":1200,"height":400,"url":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","type":"image\/jpeg"}],"author":"Dani\u00ebl van Eeden","twitter_card":"summary_large_image","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Dani\u00ebl van Eeden","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/"},"author":{"name":"Dani\u00ebl van Eeden","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/e7f356ca823f7aa0615191786b00a4d2"},"headline":"Easy Local Development with TiDB","datePublished":"2021-09-07T00:00:00+00:00","dateModified":"2025-03-04T14:55:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/"},"wordCount":1086,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","keywords":["Tutorial"],"articleSection":["Product"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/","url":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/","name":"Easy Local Development with TiDB | TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","datePublished":"2021-09-07T00:00:00+00:00","dateModified":"2025-03-04T14:55:54+00:00","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Easy Local Development with TiDB\" here.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg","width":1200,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/easy-local-development-with-tidb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Easy Local Development with TiDB"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/e7f356ca823f7aa0615191786b00a4d2","name":"Dani\u00ebl van Eeden","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Dani\u00ebl van Eeden"},"description":"Technical Support Engineer","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/daniel-van-eeden\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/easy-local-development-with-tidb\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"easy-local-development-with-tidb.jpg\" src=\"https:\/\/static.pingcap.com\/files\/2021\/09\/easy-local-development-with-tidb.jpg\" loading=\"lazy\" width=1200 height=400 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Product<\/div><\/div><h5 class=\"card-resource__title\">Easy Local Development with TiDB<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":4,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/384\/revisions"}],"predecessor-version":[{"id":25525,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/384\/revisions\/25525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/388"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}