{"id":69549,"date":"2020-09-16T01:52:51","date_gmt":"2020-09-15T22:52:51","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=69549"},"modified":"2023-07-24T12:32:03","modified_gmt":"2023-07-24T09:32:03","slug":"install-single-node-tidb-database-cluster-on-centos","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/install-single-node-tidb-database-cluster-on-centos\/","title":{"rendered":"Install Single Node TiDB database Cluster on CentOS 8"},"content":{"rendered":"\n<p>Welcome to today&#8217;s article on how to install Single Node TiDB database Cluster on CentOS 8 Linux server. TiDB is a MySQL compatible, open-source NewSQL database with support for Analytical Processing (HTAP) and  Hybrid Transactional workloads. The top key features of TiDB are high availability, horizontal scalability and strong consistency. This database solution covers OLTP (Online Transactional Processing), OLAP (Online Analytical Processing), and HTAP services.<\/p>\n\n\n\n<p>This setup will be performed in a single node instance and is meant for Lab and Dev environments. This guide should not be referenced for production environments which requires highly available cluster with at least three machines in the cluster. Consult <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\" target=\"_blank\" rel=\"noreferrer noopener\">official TiDB documentation<\/a> pages for Production setup requirements and recommendations. Check the <a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\" target=\"_blank\" rel=\"noreferrer noopener\">release notes<\/a> to understand all  new software features<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install Single Node TiDB database Cluster on CentOS 8<\/h2>\n\n\n\n<p>This setup is done on a server with the following hardware and software requirements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OS<\/strong>: CentOS 8 (64 bit)<\/li>\n\n\n\n<li><strong>Memory<\/strong>: 16 GB<\/li>\n\n\n\n<li><strong>CPU<\/strong>: 8 core+<\/li>\n\n\n\n<li><strong>Disk Space<\/strong>: 50GB+<\/li>\n\n\n\n<li>root user SSH access<\/li>\n\n\n\n<li>Internet access on the server<\/li>\n<\/ul>\n\n\n\n<p>If you have intense operations with other components such as PD, TiKV, TiFlash, TiCDC and Monitor these minimum requirements may not suffice. Be keen on the recommendations provided in documentation before committing on particular component.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Update the Server<\/h3>\n\n\n\n<p>Before we can start the installation of TiDB database on CentOS 8 login to the machine and perform system update.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y update<\/code><\/pre>\n\n\n\n<p>Reboot the system after an upgrade.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reboot<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Disable system swap and firewalld<\/h3>\n\n\n\n<p>TiDB requires sufficient memory space for its operations and swap is not recommended. Therefore, it is recommended to disable the system swap permanently.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"vm.swappiness = 0\" | sudo tee -a \/etc\/sysctl.conf\nsudo swapoff -a &amp;&amp; sudo swapon -a\nsudo sysctl -p<\/code><\/pre>\n\n\n\n<p>In TiDB clusters, the access ports between nodes must be open to ensure the transmission of information such as read and write requests and data heartbeats. I recommend you disable <a href=\"https:\/\/computingforgeeks.com\/getting-started-with-firewalld-rhel-centos\/\">firewalld<\/a> for this Lab setup.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --state\nsudo systemctl status firewalld.service<\/code><\/pre>\n\n\n\n<p>If you want to open the ports in the firewall check<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/hardware-and-software-requirements#network-requirements\" target=\"_blank\" rel=\"noreferrer noopener\"> Networking Ports <\/a>requirements document.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Download and install TiUP<\/h3>\n\n\n\n<p>Next is to download TiUP installer script to CentOS 8 machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --proto '=https' --tlsv1.2 -sSf https:\/\/tiup-mirrors.pingcap.com\/install.sh -o tiup_installer.sh<\/code><\/pre>\n\n\n\n<p>Give the script execution bits.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x tiup_installer.sh<\/code><\/pre>\n\n\n\n<p>Make sure tar package is installed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo yum -y install tar<\/code><\/pre>\n\n\n\n<p>Execute the script to start installation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo .\/tiup_installer.sh<\/code><\/pre>\n\n\n\n<p>Execution output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WARN: adding root certificate via internet: https:\/\/tiup-mirrors.pingcap.com\/root.json\nYou can revoke this by remove \/root\/.tiup\/bin\/7b8e153f2e2d0928.root.json\nSet mirror to https:\/\/tiup-mirrors.pingcap.com success\nDetected shell: bash\nShell profile:  \/root\/.bash_profile\n\/root\/.bash_profile has been modified to to add tiup to PATH\nopen a new terminal or source \/root\/.bash_profile to use it\nInstalled path: \/root\/.tiup\/bin\/tiup\n===============================================\nHave a try:     tiup playground\n===============================================<\/code><\/pre>\n\n\n\n<p>Source updated bash profile.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/root\/.bash_profile<\/code><\/pre>\n\n\n\n<p>The next step is to install the cluster component of TiUP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">tiup cluster<\/mark>\nThe component `cluster` is not installed; downloading from repository.\n....\nStarting component `cluster`:\nDeploy a TiDB cluster for production<\/code><\/pre>\n\n\n\n<p>If the TiUP cluster is already installed on the machine, update the software version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\"> tiup update --self &amp;&amp; tiup update cluster<\/mark>\ndownload https:\/\/tiup-mirrors.pingcap.com\/tiup-v1.x.y-linux-amd64.tar.gz 4.32 MiB \/ 4.32 MiB 100.00% 4.91 MiB p\/s\nUpdated successfully!\ncomponent cluster version v1.x.y is already installed\nUpdated successfully!<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Create and start local TiDB cluster<\/h3>\n\n\n\n<p>It is recommended to increase the connection limit of the sshd service since TiUP needs to simulate deployment on multiple machines.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">vi \/etc\/ssh\/sshd_config<\/mark>\nMaxSessions 30<\/code><\/pre>\n\n\n\n<p>Restart <em>sshd <\/em>service after making the change.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart sshd<\/code><\/pre>\n\n\n\n<p>Create topology configuration file called<em> tidb-topology.yaml<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &gt;tidb-topology.yaml&lt;&lt;EOF\n# # Global variables are applied to all deployments and used as the default value of\n# # the deployments if a specific deployment value is missing.\nglobal:\n user: \"tidb\"\n ssh_port: 22\n deploy_dir: \"\/tidb-deploy\"\n data_dir: \"\/tidb-data\"\n\n# # Monitored variables are applied to all the machines.\nmonitored:\n node_exporter_port: 9100\n blackbox_exporter_port: 9115\n\nserver_configs:\n tidb:\n   log.slow-threshold: 300\n tikv:\n   readpool.storage.use-unified-pool: false\n   readpool.coprocessor.use-unified-pool: true\n pd:\n   replication.enable-placement-rules: true\n tiflash:\n   logger.level: \"info\"\n\npd_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n\ntidb_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n\ntikv_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n   port: 20160\n   status_port: 20180\n\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n   port: 20161\n   status_port: 20181\n\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n   port: 20162\n   status_port: 20182\n\ntiflash_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n\nmonitoring_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\n\ngrafana_servers:\n - host: 127.0.0.1 # Replace with the server IP address you want to use\nEOF<\/code><\/pre>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>user: &#8220;tidb&#8221;<\/strong>: Use the tidb system user (automatically created during deployment) to perform the internal management of the cluster. By default, use port 22 to log in to the target machine via SSH.<\/li>\n\n\n\n<li><strong>replication.enable-placement-rules<\/strong>: This PD parameter is set to ensure that TiFlash runs normally.<\/li>\n\n\n\n<li><strong>host<\/strong>: The IP of the target machine.<\/li>\n<\/ul>\n\n\n\n<p>Run the cluster deployment command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tiup cluster deploy <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-cyan-blue-color\">&lt;cluster-name><\/mark><\/em> <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">&lt;tidb-version><\/mark><\/em> .\/tidb-topology.yaml --user root -p\n\ntiup cluster deploy mycluste<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">r<\/mark><\/em> .\/tidb-topology.yaml --user root -p<\/code><\/pre>\n\n\n\n<p>Replace:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>&lt;clyster-name&gt;<\/em> with the cluster name you want to use.<\/li>\n\n\n\n<li>&lt;tidp-version> TiDB cluster version. <\/li>\n\n\n\n<li>Get all supported TiDB versions using the following command:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># tiup list tidb<\/code><\/pre>\n\n\n\n<p>I&#8217;ll use the latest version as returned by above command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># tiup cluster deploy local-tidb  VERSION .\/tidb-topology.yaml --user root -p<\/code><\/pre>\n\n\n\n<p>Press the  &#8220;<strong>y<\/strong>&#8221; key and provide the root user&#8217;s password to complete the deployment:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Attention:\n    1. If the topology is not what you expected, check your yaml file.\n    2. Please confirm there is no port\/directory conflicts in same host.\nDo you want to continue? &#91;y\/N]:  y\nInput SSH password:\n+ Generate SSH keys ... Done\n+ Download TiDB components\n......<\/code><\/pre>\n\n\n\n<p>You should see TiDB components being downloaded.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Input SSH password:\n+ Generate SSH keys ... Done\n+ Download TiDB components\n  - Download pd:v4.0.6 (linux\/amd64) ... Done\n  - Download tikv:v4.0.6 (linux\/amd64) ... Done\n  - Download tidb:v4.0.6 (linux\/amd64) ... Done\n  - Download tiflash:v4.0.6 (linux\/amd64) ... Done\n  - Download prometheus:v4.0.6 (linux\/amd64) ... Done\n  - Download grafana:v4.0.6 (linux\/amd64) ... Done\n  - Download node_exporter:v0.17.0 (linux\/amd64) ... Done\n  - Download blackbox_exporter:v0.12.0 (linux\/amd64) ... Done\n+ Initialize target host environments\n  - Prepare 127.0.0.1:22 ... Done\n+ Copy files\n  - Copy pd -&gt; 127.0.0.1 ... Done\n  - Copy tikv -&gt; 127.0.0.1 ... Done\n  - Copy tikv -&gt; 127.0.0.1 ... Done\n  - Copy tikv -&gt; 127.0.0.1 ... Done\n  - Copy tidb -&gt; 127.0.0.1 ... Done\n  - Copy tiflash -&gt; 127.0.0.1 ... Done\n  - Copy prometheus -&gt; 127.0.0.1 ... Done\n  - Copy grafana -&gt; 127.0.0.1 ... Done\n  - Copy node_exporter -&gt; 127.0.0.1 ... Done\n  - Copy blackbox_exporter -&gt; 127.0.0.1 ... Done\n+ Check status\nDeployed cluster `local-tidb` successfully, you can start the cluster via `tiup cluster start local-tidb`<\/code><\/pre>\n\n\n\n<p>Start your cluster:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># tiup cluster start local-tidb<\/code><\/pre>\n\n\n\n<p>Sample output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>....\nStarting component pd\n\tStarting instance pd 127.0.0.1:2379\n\tStart pd 127.0.0.1:2379 success\nStarting component node_exporter\n\tStarting instance 127.0.0.1\n\tStart 127.0.0.1 success\nStarting component blackbox_exporter\n\tStarting instance 127.0.0.1\n\tStart 127.0.0.1 success\nStarting component tikv\n\tStarting instance tikv 127.0.0.1:20162\n\tStarting instance tikv 127.0.0.1:20160\n\tStarting instance tikv 127.0.0.1:20161\n\tStart tikv 127.0.0.1:20161 success\n\tStart tikv 127.0.0.1:20162 success\n\tStart tikv 127.0.0.1:20160 success\nStarting component tidb\n\tStarting instance tidb 127.0.0.1:4000\n\tStart tidb 127.0.0.1:4000 success\n....<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Access TiDB cluster<\/h3>\n\n\n\n<p>To view the currently deployed cluster list:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># tiup cluster list\nStarting component `cluster`: \/root\/.tiup\/components\/cluster\/v1.1.2\/tiup-cluster list\nName        User  Version  Path                                             PrivateKey\n----        ----  -------  ----                                             ----------\nlocal-tidb  tidb  v4.0.6   \/root\/.tiup\/storage\/cluster\/clusters\/local-tidb  \/root\/.tiup\/storage\/cluster\/clusters\/local-tidb\/ssh\/id_rsa<\/code><\/pre>\n\n\n\n<p>To view the cluster topology and status:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># tiup cluster display local-tidb\nStarting component `cluster`: \/root\/.tiup\/components\/cluster\/v1.1.2\/tiup-cluster display local-tidb\ntidb Cluster: local-tidb\ntidb Version: v4.0.6\nID               Role        Host       Ports                            OS\/Arch       Status    Data Dir                    Deploy Dir\n--               ----        ----       -----                            -------       ------    --------                    ----------\n127.0.0.1:3000   grafana     127.0.0.1  3000                             linux\/x86_64  inactive  -                           \/tidb-deploy\/grafana-3000\n127.0.0.1:2379   pd          127.0.0.1  2379\/2380                        linux\/x86_64  Up|L|UI   \/tidb-data\/pd-2379          \/tidb-deploy\/pd-2379\n127.0.0.1:9090   prometheus  127.0.0.1  9090                             linux\/x86_64  inactive  \/tidb-data\/prometheus-9090  \/tidb-deploy\/prometheus-9090\n127.0.0.1:4000   tidb        127.0.0.1  4000\/10080                       linux\/x86_64  Up        -                           \/tidb-deploy\/tidb-4000\n127.0.0.1:9000   tiflash     127.0.0.1  9000\/8123\/3930\/20170\/20292\/8234  linux\/x86_64  N\/A       \/tidb-data\/tiflash-9000     \/tidb-deploy\/tiflash-9000\n127.0.0.1:20160  tikv        127.0.0.1  20160\/20180                      linux\/x86_64  Up        \/tidb-data\/tikv-20160       \/tidb-deploy\/tikv-20160\n127.0.0.1:20161  tikv        127.0.0.1  20161\/20181                      linux\/x86_64  Up        \/tidb-data\/tikv-20161       \/tidb-deploy\/tikv-20161\n127.0.0.1:20162  tikv        127.0.0.1  20162\/20182                      linux\/x86_64  Up        \/tidb-data\/tikv-20162       \/tidb-deploy\/tikv-20162<\/code><\/pre>\n\n\n\n<p>Once it is started you can access the TiDB cluster using the mysql command line client tool.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># yum install mariadb -y\n# mysql -h 127.0.01 -P 4000 -u root\nWelcome to the MariaDB monitor.  Commands end with ; or \\g.\nYour MySQL connection id is 2\nServer version: 5.7.25-TiDB-v4.0.6 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible\n\nCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.\n\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\n\nMySQL &#91;(none)]&gt; SELECT VERSION();\n+--------------------+\n| VERSION()          |\n+--------------------+\n| 5.7.25-TiDB-v4.0.6 |\n+--------------------+\n1 row in set (0.001 sec)\n\nMySQL &#91;(none)]&gt; EXIT<\/code><\/pre>\n\n\n\n<p><strong>Dashboards access:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Access the Grafana monitoring dashboard at&nbsp;<a href=\"https:\/\/computingforgeeks.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/{grafana-ip}:3000<\/a>. The default username and password are both&nbsp;<code>admin<\/code>.<\/li>\n\n\n\n<li>Access the&nbsp;<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/dashboard-intro\" target=\"_blank\" rel=\"noreferrer noopener\">TiDB Dashboard<\/a>&nbsp;at&nbsp;<a href=\"https:\/\/computingforgeeks.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/{pd-ip}:2379\/dashboard<\/a>. The default username is&nbsp;<code>root<\/code>, and the password is empty.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"whats-next\">What&#8217;s next<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you have just deployed a TiDB cluster for the local test environment:\n<ul class=\"wp-block-list\">\n<li>Learn&nbsp;<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/basic-sql-operations\" target=\"_blank\" rel=\"noreferrer noopener\">Basic SQL operations in TiDB<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/migration-overview\" target=\"_blank\" rel=\"noreferrer noopener\">Migrate data to TiDB<\/a><\/li>\n\n\n\n<li>Learn&nbsp;<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/overview\" target=\"_blank\" rel=\"noreferrer noopener\">TiDB key features and scenarios<\/a><\/li>\n\n\n\n<li>Learn&nbsp;<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/tidb-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">TiDB&#8217;s architecture<\/a><\/li>\n\n\n\n<li>Learn&nbsp;<a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/mysql-compatibility\" target=\"_blank\" rel=\"noreferrer noopener\">TiDB&#8217;s compatibility with MySQL<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>If you are ready to deploy a TiDB cluster for the production environment:\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/production-deployment-using-tiup\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy TiDB online using TiUP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/production-offline-deployment-using-tiup\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy TiDB offline using TiUP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.pingcap.com\/tidb-in-kubernetes\/v1.1\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy TiDB on Cloud using TiDB Operator<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to today&#8217;s article on how to install Single Node TiDB database Cluster on CentOS 8 Linux server. TiDB is a MySQL compatible, open-source NewSQL database with support for Analytical Processing (HTAP) and Hybrid Transactional workloads. The top key features of TiDB are high availability, horizontal scalability and strong consistency. This database solution covers OLTP &#8230; <a title=\"Install Single Node TiDB database Cluster on CentOS 8\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/install-single-node-tidb-database-cluster-on-centos\/\" aria-label=\"Read more about Install Single Node TiDB database Cluster on CentOS 8\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":70412,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[461,17,299,50],"tags":[324,25684],"class_list":["post-69549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-centos","category-how-to","category-linux-tutorials","tag-databases","tag-tidb"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/69549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=69549"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/69549\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/70412"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=69549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=69549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=69549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}