{"id":126,"date":"2015-09-08T18:22:21","date_gmt":"2015-09-08T18:22:21","guid":{"rendered":"http:\/\/www.otakudang.org\/?p=126"},"modified":"2015-09-08T18:22:21","modified_gmt":"2015-09-08T18:22:21","slug":"replika-master-slave-mysql","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=126","title":{"rendered":"Replika Master-Slave MySQL"},"content":{"rendered":"<h3><strong>Latar Belakang<\/strong><\/h3>\n<p>Pokoke ada database penting yang perlu dibackup di secondary server. Period.<\/p>\n<h3><strong>Asumsi<\/strong><\/h3>\n<ul>\n<li>Server MySQL master dan slave menggunakan OS Ubuntu (walaupun sebenarnya tidak harus Ubuntu, tetapi semua contoh setup di sini berjalan di atas OS tersebut).<\/li>\n<li>Di bakal server slave sudah terinstall MySQL-server.<\/li>\n<li>Sebagai perumpamaan, ip address MySQL master (untuk selanjutnya akan disingkat <strong>master<\/strong> saja) adalah :\u00a0<strong>1.2.3.4<\/strong>.<\/li>\n<li>Sebagai perumpamaan, ip address MySQL slave (untuk selanjutnya akan disingkat <strong>slave<\/strong> saja) adalah:\u00a0<strong>4.3.2.1<\/strong>.<\/li>\n<li>Masing-masing server tersambung dan dapat melakukan ping satu sama lain melalui LAN\/WAN\/VPN. Pastikan firewall melewatkan paket di antara ke-2 server tersebut (jika ada firewall).<\/li>\n<li>Semua perintah shell dijalankan dengan privilege\u00a0<strong>root<\/strong>. Sebenarnya yang paling aman adalah dengan menggunakan\u00a0<strong>sudo<\/strong>. Tapi kali ini biar saya jadi ignorant sebentar.<\/li>\n<li>Database yang akan direplicate bernama : <strong>TheDataBase<\/strong>.<\/li>\n<\/ul>\n<h3>Setup Server Master<\/h3>\n<ul style=\"list-style-type: square;\">\n<li>Edit file\u00a0<strong>\/etc\/mysql\/my.cnf\u00a0<\/strong>dengan parameter sebagai berikut:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>bind-address \u00a0 \t    = 1.2.3.4\r\nserver-id \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 = 1\u00a0\r\nlog_bin \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 =\u00a0\/var\/log\/mysql\/mysql-bin.log\r\nbinlog_do_db \u00a0\t    = TheDataBase<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em>note:\u00a0<\/em><strong>server-id\u00a0<\/strong>sebenarnya bisa diisi bebas, yang penting berbeda dengan\u00a0<strong>server-id<\/strong> slave nantinya.<\/li>\n<li>Restart MySQL dengan perintah:\u00a0<strong>service mysql restart<\/strong> .<\/li>\n<li>Masuk ke MySQL shell dengan perintah\u00a0<strong>: mysql -u root -pR4h4514 \u00a0<\/strong>(ganti dengan password root MySQL server yang sedang disetup). Lalu jalankan perintah:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt;\u00a0GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'P455w0rd';\r\nmysql&gt; FLUSH PRIVILEGES;<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>ganti password\u00a0<strong>P455w0rd\u00a0<\/strong>dengan yang lebih aman.<\/li>\n<li>masih di dalam shell MySQL, jalankan langkah berikut:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt; USE TheDataBase;\r\nmysql&gt; FLUSH TABLES WITH READ LOCK;\r\nmysql&gt; SHOW MASTER STATUS;<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>perintah MySQL terakhir akan memunculkan table seperti berikut:<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>+------------------+----------+--------------+------------------+\r\n| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |\r\n+------------------+----------+--------------+------------------+\r\n| mysql-bin.000235 |  7991253 | TheDatabase  |                  |\r\n+------------------+----------+--------------+------------------+\r\n1 row in set (0.00 sec)<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>simpan output tersebut untuk keperluan nanti pada saat setup slave server.<\/li>\n<li>Dengan kondisi terakhir database masih di<em>lock<\/em>, buka window\/console shell linux baru untuk menjalankan langkah selanjutnya. Hal ini dilakukan agar database tetap dalam kondisi\u00a0<em>locked<\/em>. Jika kita menjalankan perintah di windows\/console MySQL yang sama, maka database akan otomatis\u00a0<em>unlocked<\/em>. Setelah membuka windows\/shell baru, jalankan langkah berikut:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>root@master:~#\u00a0mysqldump -u root -p --opt TheDataBase &gt; \/usr\/local\/src\/TheDataBase.sql<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Lokasi penyimpanan file hasil dump bebas bisa di mana saja. Ini hanya kebiasaan saya dalam menyimpan file dump di \/usr\/local\/src.<\/li>\n<li>Kembali ke window\/shell MySQL sebelumnya lalu unlock database dengan cara:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt; UNLOCK TABLES;\r\nmysql&gt; QUIT;<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Salin file hasil dump tersebut ke bakal server slave:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>root@master:~# scp \/usr\/local\/src\/TheDataBase.sql root@4.3.2.1:\/usr\/local\/src\/<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<h3>Setup Server Slave<\/h3>\n<ul>\n<li>Login ke server slave dan masuk ke shell MySQL sebagai root. Jalankan langkah berikut ini:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt; CREATE DATABASE TheDataBase;\r\nmysql&gt; EXIT;<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Import database yang sudah disalin sebelumnya:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>root@slave:~#\u00a0mysql -u root -p TheDataBase &lt; \/usr\/ocal\/src\/TheDataBase.sql<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Edit file <strong>\/etc\/mysql\/my.cnf\u00a0<\/strong>seperti berikut:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>bind-address \t = 4.3.2.1\r\nserver-id\t = 2 \r\nrelay-log \t = \/var\/log\/mysql\/mysql-relay-bin.log\r\nlog_bin          = \/var\/log\/mysql\/mysql-bin.log\r\nbinlog_do_db \t = TheDataBase<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>Restart MySQL dengan perintah:\u00a0<strong>service mysql restart<\/strong><\/li>\n<li>Masuk ke shell MySQl sebagai root lalu jalankan perintah:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt;\u00a0CHANGE MASTER TO MASTER_HOST='1.2.3.4',MASTER_USER='backup', MASTER_PASSWORD='P455w0rd', MASTER_LOG_FILE='mysql-bin.000235', MASTER_LOG_POS= \u00a07991253;\r\nmysql&gt; START SLAVE;<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em>catatan<\/em>:<\/p>\n<p>MASTER_HOST diisi dengan ip address MySQL master yaitu\u00a0<strong>1.2.3.4<\/strong>.<\/p>\n<p>MASTER_LOG_FILE dan MASTER_LOG_POS diisi dengan nama file log dan position sesuai di table output perintah\u00a0<strong>SHOW MASTER STATUS\u00a0<\/strong>pada saat setup master di atas.<\/p>\n<p>MASTER_USER dan MASTER_PASSWORD diisi dengan user dan password yang sudah ditambahkan pada saat setup master sebelumnya.<\/li>\n<li>Jika kita menjalankan perintah shell MySQL di slave server dengan perintah:<br \/>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>mysql&gt; SHOW SLAVE STATUS\\G<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>maka akan muncul output:<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>*************************** 1. row ***************************\r\n               Slave_IO_State: Waiting for master to send event\r\n                  Master_Host: 202.52.146.51\r\n                  Master_User: backup\r\n                  Master_Port: 3306\r\n                Connect_Retry: 60\r\n              Master_Log_File: mysql-bin.000235\r\n          Read_Master_Log_Pos: 7991253\r\n               Relay_Log_File: mysqld-relay-bin.000002\r\n                Relay_Log_Pos: 3282325\r\n        Relay_Master_Log_File: mysql-bin.000235\r\n             Slave_IO_Running: Yes\r\n            Slave_SQL_Running: Yes\r\n              Replicate_Do_DB:\r\n          Replicate_Ignore_DB:\r\n           Replicate_Do_Table:\r\n       Replicate_Ignore_Table:\r\n      Replicate_Wild_Do_Table:\r\n  Replicate_Wild_Ignore_Table:\r\n                   Last_Errno: 0\r\n                   Last_Error:\r\n                 Skip_Counter: 0\r\n          Exec_Master_Log_Pos: 7991253\r\n              Relay_Log_Space: 3282482\r\n              Until_Condition: None\r\n               Until_Log_File:\r\n                Until_Log_Pos: 0\r\n           Master_SSL_Allowed: No\r\n           Master_SSL_CA_File:\r\n           Master_SSL_CA_Path:\r\n              Master_SSL_Cert:\r\n            Master_SSL_Cipher:\r\n               Master_SSL_Key:\r\n        Seconds_Behind_Master: 0\r\nMaster_SSL_Verify_Server_Cert: No\r\n                Last_IO_Errno: 0\r\n                Last_IO_Error:\r\n               Last_SQL_Errno: 0\r\n               Last_SQL_Error:\r\n  Replicate_Ignore_Server_Ids:\r\n             Master_Server_Id: 1\r\n1 row in set (0.00 sec)<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Perhatikan\u00a0<strong>Read_Master_Log_Pos<\/strong> dan\u00a0<strong>Exec_Master_Log_Pos<\/strong> memiliki nilai yang sama dengan output table\u00a0<strong>SHOW MASTER STATUS\u00a0<\/strong>sebelumnya. Begitu juga dengan\u00a0<strong>Master_Log_File<\/strong> dan <strong>Relay_Master_Log_File<\/strong>.<\/li>\n<\/ul>\n<h3>Setting IPTABLES<\/h3>\n<p>Untuk membatasi akses MySQL maka dibuat aturan sebagai berikut:<\/p>\n<ul>\n<li>Akses MySQL di master server hanya boleh dari ip address slave server, dan localhost.<\/li>\n<li>Akses selain dari source di atas, akan diblok.<\/li>\n<\/ul>\n<p>Rule dasar iptables-nya adalah sebagai berikut:<\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>iptables -A INPUT -p tcp -s 4.3.2.1 --sport 1024:65535 -d 1.2.3.4 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT\r\niptables -A OUTPUT -p tcp -s 1.2.3.4 --sport 3306 -d 4.3.2.1 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT\r\niptables -A INPUT -i lo -p tcp --dport mysql -j ACCEPT\r\niptables -A INPUT -i eth0 -p tcp --dport mysql -s 4.3.2.1 -j ACCEPT\r\niptables -A INPUT -p tcp --dport mysql -j DROP\r\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Supaya rule iptables tersebut persistent walauapun server direstart, install package\u00a0<strong>iptables-persistent:<\/strong><\/p>\n<table class=\"wysiwyg-macro\" style=\"background-image: url('http:\/\/wiki.jcamp.biz\/plugins\/servlet\/confluence\/placeholder\/macro-heading?definition=e2NvZGV9&amp;locale=en_GB&amp;version=2'); background-repeat: no-repeat;\" data-macro-name=\"code\" data-macro-body-type=\"PLAIN_TEXT\">\n<tbody>\n<tr>\n<td class=\"wysiwyg-macro-body\">\n<pre>root@master:~# apt-get install -y\u00a0iptables-persistent\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nThe following packages were automatically installed and are no longer required:\r\nlibgsasl7 libgnutls-openssl27 libntlm0\r\nUse 'apt-get autoremove' to remove them.\r\nThe following NEW packages will be installed:\r\niptables-persistent\r\n0 upgraded, 1 newly installed, 0 to remove and 153 not upgraded.\r\nNeed to get 8,960 B of archives.\r\nAfter this operation, 58.4 kB of additional disk space will be used.\r\nGet:1 http:\/\/kambing.ui.ac.id\/ubuntu\/ precise\/universe iptables-persistent all 0.5.3ubuntu2 [8,960 B]\r\nFetched 8,960 B in 0s (63.1 kB\/s)\r\ndebconf: unable to initialize frontend: Dialog\r\ndebconf: (Dialog frontend requires a screen at least 13 lines tall and 31 columns wide.)\r\ndebconf: falling back to frontend: Readline\r\nPreconfiguring packages ...\r\nConfiguring iptables-persistent\r\n-------------------------------\r\nCurrent iptables rules can be saved to the configuration file \/etc\/iptables\/rules.v4. These rules will then be loaded automatically\r\nduring system startup.\r\nRules are only saved automatically during package installation. See the manual page of iptables-save(8) for instructions on keeping\r\nthe rules file up-to-date.\r\nSave current IPv4 rules? y &lt;----\u00a0jawab Y\r\n\r\nCurrent iptables rules can be saved to the configuration file \/etc\/iptables\/rules.v6. These rules will then be loaded automatically\r\nduring system startup.\r\nRules are only saved automatically during package installation. See the manual page of ip6tables-save(8) for instructions on\r\nkeeping the rules file up-to-date.\r\nSave current IPv6 rules? n &lt;----\u00a0jawab N\r\n\r\nSelecting previously unselected package iptables-persistent.\r\n(Reading database ... 42575 files and directories currently installed.)\r\nUnpacking iptables-persistent (from ...\/iptables-persistent_0.5.3ubuntu2_all.deb) ...\r\nProcessing triggers for ureadahead ...\r\nureadahead will be reprofiled on next reboot\r\nSetting up iptables-persistent (0.5.3ubuntu2) ...\r\ndebconf: unable to initialize frontend: Dialog\r\ndebconf: (Dialog frontend requires a screen at least 13 lines tall and 31 columns wide.)\r\ndebconf: falling back to frontend: Readline\r\n* Loading iptables rules... * IPv4... * skipping IPv6 (no rules to load)...<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Secara otomatis, rule iptables akan di save di lokasi\u00a0<strong>\/etc\/iptables\/rules.v4<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Latar Belakang Pokoke ada database penting yang perlu dibackup di secondary server. Period. Asumsi Server MySQL master dan slave menggunakan OS Ubuntu (walaupun sebenarnya tidak harus Ubuntu, tetapi semua contoh setup di sini berjalan di atas OS tersebut). Di bakal server slave sudah terinstall MySQL-server. Sebagai perumpamaan, ip address MySQL master (untuk selanjutnya akan disingkat &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=126\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Replika Master-Slave MySQL&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-mntubuntu","entry"],"_links":{"self":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=126"}],"version-history":[{"count":1,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":132,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions\/132"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}