{"id":17235,"date":"2023-07-10T23:57:14","date_gmt":"2023-07-10T20:57:14","guid":{"rendered":"https:\/\/kifarunix.com\/?p=17235"},"modified":"2024-03-10T10:24:10","modified_gmt":"2024-03-10T07:24:10","slug":"quickly-install-mysql-8-on-debian-12","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/quickly-install-mysql-8-on-debian-12\/","title":{"rendered":"Quickly Install MySQL 8 on Debian 12"},"content":{"rendered":"\n<p>This guide provides a step-wise tutorial on how to quickly install MySQL 8 on Debian 12.&nbsp;<a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">MySQL<\/a>&nbsp;is a fast, stable and true multi-user, multi-threaded SQL database server with its main goals being speed, robustness and ease of use. To see a comprehensive description of the features offered by MySQL 8, navigate to&nbsp;<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/mysql-nutshell.html\" target=\"_blank\" rel=\"noreferrer noopener\">MySQL 8 Reference Manual<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#installing-my-sql-8-on-debian-12\">Installing MySQL 8 on Debian 12<\/a><ul><li><a href=\"#install-my-sql-apt-repository-on-debian-12\">Install MySQL APT Repository on Debian 12<\/a><\/li><li><a href=\"#install-my-sql-as-docker-container-on-debian-12\">Install MySQL as Docker Container on Debian 12<\/a><ul><li><a href=\"#install-docker-ce-on-debian-12\">Install Docker CE on Debian 12<\/a><\/li><li><a href=\"#running-my-sql-8-as-docker-container-on-debian-12\">Running MySQL 8 as Docker Container on Debian 12<\/a><\/li><li><a href=\"#list-running-containers\">List running containers<\/a><\/li><li><a href=\"#logging-in-to-my-sql-8-docker-container\">Logging in to MySQL 8 Docker container<\/a><\/li><li><a href=\"#running-my-sql-commands-within-my-sql-docker-container\">Running MySQL commands within MySQL Docker Container<\/a><\/li><li><a href=\"#storing-my-sql-docker-container-credentials-in-secrets-file\">Storing MySQL Docker Container Credentials in Secrets file<\/a><\/li><li><a href=\"#accessing-my-sql-docker-container-database-from-the-host\">Accessing MySQL Docker Container Database from the Host<\/a><\/li><li><a href=\"#how-to-use-custom-my-sql-configuration-file-in-docker-container\">How to Use Custom MySQL Configuration file in Docker Container<\/a><\/li><li><a href=\"#my-sql-docker-container-persistent-data\">MySQL Docker container Persistent Data<\/a><\/li><li><a href=\"#restart-the-my-sql-containers\">Restart the MySQL Containers<\/a><\/li><li><a href=\"#viewing-container-logs\">Viewing Container Logs<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installing-my-sql-8-on-debian-12\">Installing MySQL 8 on Debian 12<\/h2>\n\n\n\n<p>Debian 12 doesn&#8217;t ship with MySQL 8 on its default repositories.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt show mysql-server<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nPackage: mysql-server\nState: not a real package (virtual)\nN: Can't select candidate version from package mysql-server as it has no candidate\nN: Can't select versions from package 'mysql-server' as it is purely virtual\nN: No packages found\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-my-sql-apt-repository-on-debian-12\">Install MySQL APT Repository on Debian 12<\/h3>\n\n\n\n<p>The recommended way to install MySQL 8 is via the MySQL APT repository. This makes the installation of MySQL 8 a seamless task.<\/p>\n\n\n\n<p>You would always install MySQL APT repo by downloading the repository installer from <a href=\"https:\/\/repo.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">repo.mysql.com<\/a>;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/repo.mysql.com\/\/mysql-apt-config_0.8.24-1_all.deb<\/code><\/pre>\n\n\n\n<p>You can then install the binary to setup MySQL APT repository.<\/p>\n\n\n\n<p><strong>HOWEVER, Please note that as of this writing, the repository is not supported for Debian 12 bookworm.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1802\" height=\"527\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/06\/mysql-APT-repos-debian.png\" alt=\"Install MySQL 8 on Debian 12\" class=\"wp-image-17238\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/06\/mysql-APT-repos-debian.png?v=1686764975 1802w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/06\/mysql-APT-repos-debian-768x225.png?v=1686764975 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/06\/mysql-APT-repos-debian-1536x449.png?v=1686764975 1536w\" sizes=\"(max-width: 1802px) 100vw, 1802px\" \/><\/figure>\n\n\n\n<p>Thus, let us abort the mission here and try another approach?<\/p>\n\n\n\n<p>But why not try to use MariaDB instead, in the meantime?<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-mariadb-10-on-debian-12\/\">Install MariaDB 10 on Debian 12<\/a><\/p>\n\n\n\n<p>Anyways, what if you really want MySQL 8 itself, how can you install it on Debian 12 at this moment when the MySQL 8 repos are not available yet?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-my-sql-as-docker-container-on-debian-12\">Install MySQL as Docker Container on Debian 12<\/h3>\n\n\n\n<p>Well, if you really really need to use MySQL instead of MariadDB on Debian 12 at the moment, then this is the way to go, run it as a Docker container on Debian 12.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-docker-ce-on-debian-12\">Install Docker CE on Debian 12<\/h4>\n\n\n\n<p>Thus, follow the guide below install Docker engine on Debian 12;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-install-docker-ce-on-debian-12\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install Docker CE on Debian 12<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"running-my-sql-8-as-docker-container-on-debian-12\">Running MySQL 8 as Docker Container on Debian 12<\/h4>\n\n\n\n<p>Once the Docker engine is installed and running, then proceed to setup and run MySQL 8 as Docker container.<\/p>\n\n\n\n<p>There available official Docker images of current latest stable release versions of MySQL 8 on the <a href=\"https:\/\/hub.docker.com\/_\/mysql\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Hub<\/a>.<\/p>\n\n\n\n<p>So, you can download the official latest MySQL 8 Docker image using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker pull mysql<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nUsing default tag: latest\nlatest: Pulling from library\/mysql\ne2c03c89dcad: Pull complete \n68eb43837bf8: Pull complete \n796892ddf5ac: Pull complete \n6bca45eb31e1: Pull complete \nebb53bc0dcca: Pull complete \n2e2c6bdc7a40: Pull complete \n6f27b5c76970: Pull complete \n438533a24810: Pull complete \ne5bdf19985e0: Pull complete \n667fa148337b: Pull complete \n5baa702110e4: Pull complete \nDigest: sha256:232936eb036d444045da2b87a90d48241c60b68b376caf509051cb6cffea6fdc\nStatus: Downloaded newer image for mysql:latest\ndocker.io\/library\/mysql:latest\n<\/code><\/pre>\n\n\n\n<p>List the images;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker images<\/code><\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>\nREPOSITORY   TAG       IMAGE ID       CREATED      SIZE\nmysql        latest    041315a16183   6 days ago   565MB\n<\/code><\/pre>\n\n\n\n<p>In its basic setup, you can execute the command below to create and run MySQL 8 Docker container;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=\"PASSWORD\" -d mysql<\/code><\/pre>\n\n\n\n<p>This commands create a Docker contained called <strong>mysql8<\/strong> using the MySQL image (<strong>mysql<\/strong>, tag is latest by default) and run it in a detached mode, that is in the background as specified by option <strong><code>-d<\/code><\/strong>.<\/p>\n\n\n\n<p>The variable MYSQL_ROOT_PASSWORD defines the password to be set for the MySQL root user.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"list-running-containers\">List running containers<\/h4>\n\n\n\n<p>You can verify that the MySQL Docker container is now running;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-sz\"><code>\nCONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                 NAMES\nc2cfc05265f1   mysql:latest   \"docker-entrypoint.s\u2026\"   3 seconds ago   Up 3 seconds   3306\/tcp, 33060\/tcp   mysql8\n\n<\/code><\/pre>\n\n\n\n<p>As you can see, our MySQL Docker container is running.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"logging-in-to-my-sql-8-docker-container\">Logging in to MySQL 8 Docker container<\/h4>\n\n\n\n<p>You can now connect to MySQL 8 Docker container interactive shell using the command below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker exec -it mysql8  bash<\/pre>\n\n\n\n<p>Once you are logged you will be dropped into the container shell.<\/p>\n\n\n\n<p>From within the MySQL 8 container shell, you can then login to the MySQL database;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<p>Use the password that you had provided during the deployment as the value of MYSQL_ROOT_PASSWORD.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nbash-4.4# mysql -u root -p\nEnter password: \nWelcome to the MySQL monitor.  Commands end with ; or \\g.\nYour MySQL connection id is 10\nServer version: 8.0.33 MySQL Community Server - GPL\n\nCopyright (c) 2000, 2023, Oracle and\/or its affiliates.\n\nOracle is a registered trademark of Oracle Corporation and\/or its\naffiliates. Other names may be trademarks of their respective\nowners.\n\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\n\nmysql>\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"running-my-sql-commands-within-my-sql-docker-container\">Running MySQL commands within MySQL Docker Container<\/h4>\n\n\n\n<p>While logged in to the MySQL contanier, you should now be able to execute the usual MySQL commands.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW VARIABLES LIKE \"%version%\";<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\nmysql> SHOW VARIABLES LIKE \"%version%\";\n+--------------------------+------------------------------+\n| Variable_name            | Value                        |\n+--------------------------+------------------------------+\n| admin_tls_version        | TLSv1.2,TLSv1.3              |\n| immediate_server_version | 999999                       |\n| innodb_version           | 8.0.33                       |\n| original_server_version  | 999999                       |\n| protocol_version         | 10                           |\n| replica_type_conversions |                              |\n| slave_type_conversions   |                              |\n| tls_version              | TLSv1.2,TLSv1.3              |\n| version                  | 8.0.33                       |\n| version_comment          | MySQL Community Server - GPL |\n| version_compile_machine  | x86_64                       |\n| version_compile_os       | Linux                        |\n| version_compile_zlib     | 1.2.13                       |\n+--------------------------+------------------------------+\n13 rows in set (0.01 sec)\n<\/code><\/pre>\n\n\n\n<p>There you go.<\/p>\n\n\n\n<p>You can log out from the database server;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\\q<\/code><\/pre>\n\n\n\n<p>and exit the container;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>exit<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"storing-my-sql-docker-container-credentials-in-secrets-file\">Storing MySQL Docker Container Credentials in Secrets file<\/h4>\n\n\n\n<p>If you do not want to simply expose your credentials on the command line by using the variables, you can store them in the secrets file. You can then configure the container to load these credentials from the secrets file by passing the path to the file as the value of the MYSQL_ROOT_PASSWORD_FILE.<\/p>\n\n\n\n<p>Some of the variables whose values can be stored in the secret file are <code><strong>MYSQL_ROOT_PASSWORD<\/strong><\/code>,&nbsp;<code><strong>MYSQL_ROOT_HOST<\/strong><\/code>,&nbsp;<code><strong>MYSQL_DATABASE<\/strong><\/code>,&nbsp;<code><strong>MYSQL_USER<\/strong><\/code>, and&nbsp;<code><strong>MYSQL_PASSWORD<\/strong><\/code><\/p>\n\n\n\n<p>For example, let me store my root password secret in the file <strong><code>\/opt\/mysql.d\/.secrets<\/code><\/strong>;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'MYSQL_ROOT_PASSWORD=ChangeME' &gt; \/opt\/mysql.d\/.secrets<\/code><\/pre>\n\n\n\n<p>Then, you can use the environment variable MYSQL_ROOT_PASSWORD_FILE to specify the path to secrets file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 \\\n<strong>-v \/opt\/mysql.d\/.secrets:\/run\/.secrets<\/strong> \\\n-e MYSQL_ROOT_PASSWORD_FILE=\/run\/.secrets \\\n-d mysql:latest<\/code><\/pre>\n\n\n\n<p>You can also use &#8211;env-file to tell Docker to load the environment variables from the file and pass them to the container.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 --env-file \/opt\/mysql.d\/.secrets -d mysql:latest<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"accessing-my-sql-docker-container-database-from-the-host\">Accessing MySQL Docker Container Database from the Host<\/h4>\n\n\n\n<p>As much as your MySQL Docker container is running fine above, you can only access it within the Docker network.<\/p>\n\n\n\n<p>Confirm this by checking if any MySQL port is listening on the host;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -altnp | grep 3306<\/code><\/pre>\n\n\n\n<p>There is none! this is because the container will run the MySQL server, exposing the default MySQL port (3306) internally within the container itself. So, how do you now connect to your database? You will need to expose the database port to some port on the host.<\/p>\n\n\n\n<p>Well, first of all, let&#8217;s stop and remove the container created above (or simply deploy another one with a different name);<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker rm -f mysql8<\/code><\/pre>\n\n\n\n<p>Then, let&#8217;s create create and run the container with the port exposed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=\"ChangeME\" -d mysql<\/code><\/pre>\n\n\n\n<p>This command, with option, <strong><code>-p 3306:3306<\/code><\/strong>, maps port 3306 from the container to port 3306 on the host.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -altnp | grep 3306<\/code><\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>\nLISTEN 0      4096         0.0.0.0:3306      0.0.0.0:*    users:((\"docker-proxy\",pid=6239,fd=4))\nLISTEN 0      4096            [::]:3306         [::]:*    users:((\"docker-proxy\",pid=6245,fd=4))\n<\/code><\/pre>\n\n\n\n<p>This allows external applications or tools running on the host machine to communicate with the MySQL server running inside the container via port 3306.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"how-to-use-custom-my-sql-configuration-file-in-docker-container\">How to Use Custom MySQL Configuration file in Docker Container<\/h4>\n\n\n\n<p>To achieve flexibility&nbsp;and&nbsp;ease&nbsp;of&nbsp;control&nbsp;over&nbsp;the&nbsp;MySQL&nbsp;server container, you can use a custom MySQL configuration file, that is residing on a specific directory on your host. You can the be able to mount this configuration in the container, to customize various settings according to your specific requirements.<\/p>\n\n\n\n<p>For example, if i have my customized config under, <strong><code>\/opt\/mysql.d\/my.cnf<\/code><\/strong>. Then you can always mount this in the container and use it as default configuration file;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 \\\n-v <span style=\"background-color: initial; font-family: inherit; font-size: inherit; font-weight: 600; color: inherit;\">\/opt\/mysql.d\/my.cnf<\/span>:\/etc\/mysql\/my.cnf \\\n -p 3306:3306 -e MYSQL_ROOT_PASSWORD=\"ChangeME\" \\\n-d mysql<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"my-sql-docker-container-persistent-data\">MySQL Docker container Persistent Data<\/h4>\n\n\n\n<p>Persistent data <a href=\"https:\/\/docs.docker.com\/storage\/\" target=\"_blank\" rel=\"noreferrer noopener\">storage<\/a> is important in Docker environments because it allows data to be stored and accessed even after the container that created it has been stopped or deleted.<\/p>\n\n\n\n<p>There are two mechanism for storing persistent data;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use of Docker Volumes<\/li>\n\n\n\n<li>Use of Bind Mounts<\/li>\n<\/ul>\n\n\n\n<p><strong><code>Volumes<\/code><\/strong> are created and managed by Docker. You can create a volume explicitly using the&nbsp;<code>docker volume create<\/code>. They provide better isolation, as they are stored within the Docker ecosystem and are not tied to specific paths on the host machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume create mysql-data<\/code><\/pre>\n\n\n\n<p>List volumes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume ls<\/code><\/pre>\n\n\n\n<p>Use volumes with the container;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mysql8 \\\n-v \/opt\/mysql.d\/my.cnf:\/etc\/mysql\/my.cnf \\\n -p 3306:3306 -e MYSQL_ROOT_PASSWORD=\"ChangeME\" \\\n<strong>-v mysql-data:\/var\/lib\/mysql \\\n<\/strong>-d mysql<\/code><\/pre>\n\n\n\n<p>Confirm;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker inspect -f '{{ .Mounts }}' mysql8<\/code><\/pre>\n\n\n\n<p><strong><code>Bind Mounts<\/code><\/strong> on the other hand provide a way to mount a directory from the host machine into a container.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mycontainer -v \/host\/path:<strong>\/var\/lib\/mysql<\/strong> -d myimage<\/code><\/pre>\n\n\n\n<p>Read more <a href=\"https:\/\/hub.docker.com\/_\/mysql\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"restart-the-my-sql-containers\">Restart the MySQL Containers<\/h4>\n\n\n\n<p>You can restart the MySQL Docker container;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker restart &lt;container-name&gt;<\/code><\/pre>\n\n\n\n<p>check more on <strong><code>docker --help<\/code><\/strong> page.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"viewing-container-logs\">Viewing Container Logs<\/h4>\n\n\n\n<p>You can view the container logs using;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker logs --tail N &lt;contaner-name&gt;<\/code><\/pre>\n\n\n\n<p>e.g<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker logs --tail 10 mysql8<\/code><\/pre>\n\n\n\n<p>Or read logs in realtime;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker logs -f mysql8<\/code><\/pre>\n\n\n\n<p>Or read the logs from the host system. Just get the container ID in long;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps --no-trunc<\/code><\/pre>\n\n\n\n<p>The check the logs under <strong><code>\/var\/lib\/docker\/container\/*\/*.log<\/code><\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f <span style=\"background-color: initial; font-family: inherit; font-size: inherit; font-weight: 600; color: inherit;\">\/var\/lib\/docker\/container\/<\/span>contianer-ID\/container-ID-json.log<\/code><\/pre>\n\n\n\n<p>e.g<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f \/var\/lib\/docker\/containers\/49ccee3a6e871d56b7e189c1723c87d36723980f7d7b0a538815c175393f1421\/49ccee3a6e871d56b7e189c1723c87d36723980f7d7b0a538815c175393f1421-json.log<\/code><\/pre>\n\n\n\n<p>That marks the end of our guide on installing MySQL 8 on Debian 12 as a Docker container.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide provides a step-wise tutorial on how to quickly install MySQL 8 on Debian 12.&nbsp;MySQL&nbsp;is a fast, stable and true multi-user, multi-threaded SQL database<\/p>\n","protected":false},"author":10,"featured_media":17796,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121,1076,299,1077,929],"tags":[7038,7033,7035,7034,7036,7037],"class_list":["post-17235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","category-containers","category-database","category-docker","category-mysql","tag-docker-mysql-container","tag-install-mysql-8-debian-12","tag-install-mysql-as-docker-container","tag-mysql-8-debian-12","tag-mysql-8-docker-container-debian-12","tag-mysql-docker-container","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/17235"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=17235"}],"version-history":[{"count":13,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/17235\/revisions"}],"predecessor-version":[{"id":20814,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/17235\/revisions\/20814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/17796"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=17235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=17235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=17235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}