{"id":230524,"date":"2022-11-28T20:18:00","date_gmt":"2022-11-28T17:18:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230524"},"modified":"2022-11-28T20:21:43","modified_gmt":"2022-11-28T17:21:43","slug":"o-guia-do-desenvolvedor-wordpress-para-reconstrucao-de-dados-mysql","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/o-guia-do-desenvolvedor-wordpress-para-reconstrucao-de-dados-mysql\/","title":{"rendered":"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL"},"content":{"rendered":"\n<p>Em algum ponto da carreira de todo desenvolvedor, haver\u00e1 um momento em que voc\u00ea far\u00e1 algo que arruinar\u00e1 a produ\u00e7\u00e3o.<\/p>\n<ul>\n<li>Talvez voc\u00ea envie um c\u00f3digo que acabe quebrando um cache que fornece dados para milh\u00f5es de pessoas,<\/li>\n<li>Talvez voc\u00ea atualize um aplicativo e acabe eliminando informa\u00e7\u00f5es sem backup,<\/li>\n<li>Ou talvez voc\u00ea empurre uma mudan\u00e7a que &#8220;funcione em sua m\u00e1quina&quot;, mas enxugue completamente o reposit\u00f3rio de controle de origem.<\/li>\n<\/ul>\n<p>E h\u00e1 muitos outros exemplos. Tenho certeza que voc\u00ea pode nomear mais cinco rapidamente.<\/p>\n<p>Eu cometi (trocadilhos, mais ou menos) meu quinh\u00e3o de todos os itens acima, mas uma das coisas que vejo nas pessoas que trabalham em nosso espa\u00e7o.<\/p>\n<p>Ou seja, aqueles que trabalham com aplicativos da Web baseados em banco de dados \u2013 \u00e9 a falta de compreens\u00e3o da organiza\u00e7\u00e3o do banco de dados no n\u00edvel do sistema de arquivos e como \u00e9 poss\u00edvel reconstruir os dados mesmo quando voc\u00ea n\u00e3o tem um backup padr\u00e3o do qual trabalhar.<\/p>\n<p>Neste post, vou me aprofundar na organiza\u00e7\u00e3o do banco de dados MySQL no n\u00edvel do sistema de arquivos, como voc\u00ea pode restaurar informa\u00e7\u00f5es a partir dele versus um arquivo de backup, caso se encontre nessa situa\u00e7\u00e3o, e fornecer refer\u00eancias (ou marcadores) voc\u00ea precisa deles.<\/p>\n<h2>Reconstru\u00e7\u00e3o de dados MySQL<\/h2>\n<p>Para ser claro, vou falar sobre um banco de dados MySQL rodando em uma variante de um sistema operacional baseado em *nix (ent\u00e3o voc\u00ea est\u00e1 olhando para uma distribui\u00e7\u00e3o de Linux ou macOS).<\/p>\n<p>As localiza\u00e7\u00f5es dos arquivos (que abordarei momentaneamente) variam em um sistema baseado em Windows, mas voc\u00ea ter\u00e1 que consultar o <strong><a href=\"https:\/\/dev.mysql.com\/doc\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">manual do MySQL<\/a><\/strong> ou um recurso semelhante para encontr\u00e1-los.<\/p>\n<p>O ponto \u00e9: antes de ir muito longe neste artigo, saiba onde os arquivos residem em seu sistema operacional. Por exemplo, se voc\u00ea estiver executando o macOS e provavelmente o encontrar\u00e1 em <strong>\/usr\/local\/mysql\/data.<\/strong><\/p>\n<p>Eu prefiro usar o <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/homebrew-node-e-gulp-para-desenvolvimento-wordpress\/\" title=\"Homebrew\">Homebrew<\/a><\/strong> para que meus bancos de dados MySQL estejam em <strong>\/usr\/local\/var\/mysql<em><\/em><\/strong> .<em><\/em> E como voc\u00ea pode ver acima, voc\u00ea notar\u00e1 arquivos que t\u00eam o mesmo nome dos bancos de dados que voc\u00ea tem em seu sistema .<\/p>\n<h3>Como os bancos de dados s\u00e3o organizados<\/h3>\n<p>No n\u00edvel da superf\u00edcie, parece bastante simples. Mas se voc\u00ea abrir o diret\u00f3rio como mencionado acima, voc\u00ea ver\u00e1 que muito do que voc\u00ea v\u00ea s\u00e3o diret\u00f3rios \u2013 n\u00e3o arquivos, em si \u2013 que cont\u00eam mais informa\u00e7\u00f5es.<\/p>\n<\/p>\n<p>Se voc\u00ea detalhar um dos diret\u00f3rios, ver\u00e1 uma variedade de arquivos:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75bde646e7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75bde646e7.png\" alt=\"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL\"><\/a><\/p>\n<p>Isso inclui arquivos que incluem os seguintes tipos:<\/p>\n<ul>\n<li>MUNDO<\/li>\n<li>MYI<\/li>\n<li>FRM<\/li>\n<li>DII<\/li>\n<\/ul>\n<p>E cada um desses tipos de arquivos existe para cada tabela no banco de dados.<\/p>\n<p>Ent\u00e3o, vamos ver isso mais a fundo para entender melhor exatamente em que consiste um banco de dados.<\/p>\n<h4>1 O banco de dados \u00e9 um conjunto de arquivos<\/h4>\n<p>De um modo geral, a maioria de n\u00f3s sabe que o MySQL \u00e9 um banco de <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Relational_database\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dados relacional<\/a><\/strong> e cada banco de dados consiste em um conjunto de tabelas que armazenam diferentes tipos de informa\u00e7\u00f5es (e muitas tabelas est\u00e3o relacionadas umas \u00e0s outras de alguma forma, mesmo que seja apenas um valor em um coluna \u00fanica).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be15f8cc.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be15f8cc.jpg\" alt=\"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL\"><\/a><\/p>\n<p>Mas este post n\u00e3o \u00e9 sobre o aspecto relacional do banco de dados nem sobre como podemos executar consultas nele. (Se voc\u00ea estiver interessado, experimente &#8211; \u00e9 tudo baseado em <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tuple_relational_calculus\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">c\u00e1lculo de tuplas<\/a><\/strong> .)<\/p>\n<p>Em vez disso, trata-se de entender que, para cada tabela, h\u00e1 um conjunto de arquivos que fazem refer\u00eancia \u00e0s informa\u00e7\u00f5es contidas em cada tabela. E<\/p>\n<h4>2 Entendendo os tipos de arquivo<\/h4>\n<p>Como cada tabela em um banco de dados \u00e9 composta pelos tipos de arquivo acima, vamos examinar o tipo de arquivo individual e, em seguida, determinar a fun\u00e7\u00e3o que ele desempenha para cada tabela (e, finalmente, como isso afeta todo o banco de dados).<\/p>\n<ul>\n<li><strong>MYD<\/strong>. Este arquivo cont\u00e9m os dados armazenados nas linhas da tabela do banco de dados. Este arquivo est\u00e1 intimamente relacionado ao arquivo FRM.<\/li>\n<li><strong>FRM<\/strong>. Este arquivo cont\u00e9m os dados de formato de tabela (que inclui coisas como como cada coluna do banco de dados deve ser estruturada, o tipo de dados que cont\u00e9m e assim por diante).<\/li>\n<li><strong>MEU<\/strong>. Este \u00e9 o \u00edndice do banco de dados. Se voc\u00ea estiver usando um banco de dados MyISAM (que a maioria de n\u00f3s est\u00e1 usando InnoDB neste momento), voc\u00ea ter\u00e1 este arquivo. Al\u00e9m disso, os dados incluem informa\u00e7\u00f5es sobre se os dados foram ou n\u00e3o fechados corretamente. Considere isso como um arquivo sobre a integridade da pr\u00f3pria tabela. N\u00e3o a informa\u00e7\u00e3o dentro dele, n\u00e3o o formato dele.<\/li>\n<li><strong>DII<\/strong>. Este \u00e9 um tipo de arquivo associado \u00e0s tabelas do banco de dados InnoDB (portanto, voc\u00ea pode n\u00e3o ver isso no diret\u00f3rio do seu banco de dados). Se voc\u00ea fizer isso, no entanto, \u00e9 importante saber que os bancos de dados baseados em InnoDB armazenar\u00e3o informa\u00e7\u00f5es sobre cada tabela neste arquivo.<\/li>\n<\/ul>\n<p>Nas informa\u00e7\u00f5es acima, h\u00e1 dois outros t\u00f3picos que vale a pena explorar.<\/p>\n<ol>\n<li>MyISAM<\/li>\n<li>InnoDB<\/li>\n<\/ol>\n<p>Antes de examinar cada um deles, observe que MyISAM e InnoDB s\u00e3o chamados de mecanismos de armazenamento. Parece extravagante, mas tem a ver com a forma como o software de banco de dados gerencia as opera\u00e7\u00f5es de <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Create,_read,_update_and_delete\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cria\u00e7\u00e3o, leitura, atualiza\u00e7\u00e3o e exclus\u00e3o de informa\u00e7\u00f5es<\/a><\/strong>.<\/p>\n<h5>MyISAM &amp; InnoDB: Qual \u00e9 a diferen\u00e7a?<\/h5>\n<p>Cada um desses mecanismos de armazenamento difere em como lidam com transa\u00e7\u00f5es, bloqueios, revers\u00f5es e pesquisas. Para aqueles que s\u00e3o administradores de banco de dados, voc\u00ea est\u00e1 familiarizado com todos os itens acima (mas provavelmente tamb\u00e9m n\u00e3o est\u00e1 lendo isso \ud83d\ude43).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be446350.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be446350.jpg\" alt=\"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL\"><\/a><\/p>\n<p>N\u00e3o este tipo de motor, \u00e9 claro.<\/p>\n<p>Para o resto de n\u00f3s, isso \u00e9 o que temos:<\/p>\n<ul>\n<li>As transa\u00e7\u00f5es ocorrem sempre que pelo menos duas instru\u00e7\u00f5es como SELECT e UPDATE ou INSERT e DELETE ou qualquer combina\u00e7\u00e3o das duas (ou mais) s\u00e3o usadas em conjunto. Ent\u00e3o, se voc\u00ea SELECIONAR informa\u00e7\u00f5es e DELETAR os resultados, voc\u00ea ter\u00e1 uma transa\u00e7\u00e3o.\n<ul>\n<li><strong>MyISAM n\u00e3o suporta transa\u00e7\u00f5es.<\/strong> Isso significa que, se uma &#8220;transa\u00e7\u00e3o&#8221; for interrompida, todos os dados que estavam sendo processados \u200b\u200bdurante a opera\u00e7\u00e3o ser\u00e3o afetados. \u00c9 necess\u00e1rio dizer que isso n\u00e3o \u00e9 usado.<\/li>\n<li>O InnoDB, por outro lado, garante que as altera\u00e7\u00f5es n\u00e3o ser\u00e3o feitas na tabela at\u00e9 que a transa\u00e7\u00e3o seja conclu\u00edda. Em outras palavras, as altera\u00e7\u00f5es n\u00e3o ser\u00e3o confirmadas no banco de dados.<\/li>\n<\/ul>\n<\/li>\n<li>Para cada um dos mecanismos de armazenamento, o bloqueio varia no n\u00edvel da tabela ou da linha. Sempre que voc\u00ea estiver executando uma consulta em uma tabela, o MyISAM bloquear\u00e1 a tabela inteira at\u00e9 que o processo seja conclu\u00eddo. O InnoDB, por outro lado, bloquear\u00e1 apenas as linhas que est\u00e3o sendo afetadas. Esta \u00e9 uma distin\u00e7\u00e3o importante porque significa que voc\u00ea pode continuar operando em uma tabela, mas n\u00e3o nas mesmas linhas, sempre que estiver usando o InnoDB.<\/li>\n<li>Rollbacks n\u00e3o s\u00e3o poss\u00edveis no MyISAM. Isso significa que uma vez que uma mudan\u00e7a \u00e9 feita, ela est\u00e1 feita. O InnoDB oferece rollbacks. Ent\u00e3o, digamos que voc\u00ea fa\u00e7a uma altera\u00e7\u00e3o na tabela, voc\u00ea acidentalmente fez algo que n\u00e3o pretendia fazer, ent\u00e3o voc\u00ea pode reverter para seu estado anterior. Isso n\u00e3o deve ser confundido com um backup, no entanto. \u00c9 mais como uma opera\u00e7\u00e3o de &#8220;desfazer&#8221; para uma transa\u00e7\u00e3o.<\/li>\n<li>A pesquisa, especialmente na forma como estruturamos nossos bancos de dados, \u00e9 fundamental na forma como organizamos os dados em nossos bancos de dados. Simplificando, o InnoDB suporta indexa\u00e7\u00e3o <strong><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.6\/en\/innodb-fulltext-index.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">FULLTEXT<\/a><\/strong> (a partir do MySQL 5.6.4). Mas se o seu host ou provedor n\u00e3o permitir \u00edndices FULLTEXT, eu diria que n\u00e3o \u00e9 um problema.<\/li>\n<\/ul>\n<p>Dadas todas as informa\u00e7\u00f5es acima, cabe a cada um ver que as vantagens do mecanismo de armazenamento InnoDB superam em muito as do mecanismo de armazenamento MyISAM, especialmente se voc\u00ea estiver acima para usar uma vers\u00e3o do MySQL que seja pelo menos igual a 5.6.4<\/p>\n<h4>3 Recriando o banco de dados<\/h4>\n<p>Neste ponto, vamos supor que voc\u00ea saiba que tem acesso aos arquivos que comp\u00f5em o banco de dados do sistema operacional.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be6c364a.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be6c364a.jpg\" alt=\"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL\"><\/a><\/p>\n<p>Talvez seja um backup anterior, talvez voc\u00ea consiga localizar os arquivos no disco, ou talvez consiga recuper\u00e1-los de alguma outra forma \u2013 e voc\u00ea precisa restaurar o banco de dados para um ponto anterior.<\/p>\n<h5>1 N\u00e3o fa\u00e7a isso na produ\u00e7\u00e3o<\/h5>\n<p>Antes de fazer qualquer coisa, configure um banco de dados vazio em sua m\u00e1quina local e trabalhe para importar as informa\u00e7\u00f5es. Mas, novamente, isso n\u00e3o \u00e9 como simplesmente usar um front-end de banco de dados para importar um arquivo SQL.<\/p>\n<p>Em vez disso, crie um diret\u00f3rio que corresponda ao nome do banco de dados que voc\u00ea deseja criar. Neste post, usarei o exemplo do <strong>trunkdev<\/strong> (j\u00e1 que \u00e9 aqui que trabalho usando a vers\u00e3o mais recente do <strong><a href=\"https:\/\/wordpress.org\/download\/source\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress trunk<\/a><\/strong> ).<\/p>\n<h5>2 Backup do banco de dados existente<\/h5>\n<p>Em seguida, fa\u00e7a o backup do banco de dados existente o m\u00e1ximo poss\u00edvel \u2013 seja usando um front-end de banco de dados ou uma c\u00f3pia dos arquivos. Depois disso, copie os arquivos do local de origem para o diret\u00f3rio que voc\u00ea criou.<\/p>\n<p>Voc\u00ea deve, neste ponto, ser capaz de carregar o front-end de banco de dados de sua escolha e ver as informa\u00e7\u00f5es contidas nos arquivos de banco de dados que voc\u00ea acabou de copiar. Isso depende dos arquivos n\u00e3o estarem corrompidos e do servidor de banco de dados em execu\u00e7\u00e3o.<\/p>\n<h5>3 N\u00e3o instale outro software<\/h5>\n<p>Observe que, neste momento, eu n\u00e3o tentaria instalar outro software nele como o WordPress ou qualquer outra informa\u00e7\u00e3o. Em vez disso, trabalhe diretamente com os dados. Supondo que esteja vis\u00edvel em seu front-end, fa\u00e7a um backup adequado ou exporte o arquivo para um arquivo SQL para que voc\u00ea possa restaurar as informa\u00e7\u00f5es com mais facilidade no futuro.<\/p>\n<p>Alguns front-ends permitem exportar apenas determinadas tabelas. Nesse caso, fa\u00e7a backup de tudo. Para alguns bancos de dados, isso levar\u00e1 muito tempo; Para outros, nem tanto. Tudo depende do tamanho do projeto.<\/p>\n<h5>4 Trabalhar com os dados<\/h5>\n<p>Neste ponto, voc\u00ea deve ser capaz de come\u00e7ar a manipular o banco de dados usando o front-end ou SQL. Se voc\u00ea n\u00e3o est\u00e1 confort\u00e1vel ou mesmo certo de como fazer isso, converse com algu\u00e9m que esteja, pois isso pode ser algo incrivelmente sens\u00edvel (afinal, voc\u00ea est\u00e1 lidando com a reconstru\u00e7\u00e3o de um banco de dados a partir de arquivos, certo?)<\/p>\n<p>Uma vez que voc\u00ea acredita que tem as informa\u00e7\u00f5es em um local que est\u00e1 pronto para ser restaurado para qualquer aplicativo perdido, informa\u00e7\u00f5es corrompidas ou simplesmente com dados malformados, ent\u00e3o \u00e9 hora de se preparar para pegar as informa\u00e7\u00f5es de sua m\u00e1quina local e envi\u00e1-las de volta para o fonte.<\/p>\n<h3>De volta \u00e0 fonte<\/h3>\n<p>Em primeiro lugar, recomenda-se que todos os itens acima sejam feitos durante os hor\u00e1rios de baixo tr\u00e1fego, portanto, certifique-se de que, sempre que fizer isso, n\u00e3o o fa\u00e7a durante o hor\u00e1rio de pico. Isso deve acontecer sem dizer.<\/p>\n<p>Em seguida, fa\u00e7a um backup do banco de dados antes de come\u00e7ar a operar nele. Salve o arquivo em um local que voc\u00ea possa recuperar facilmente e acessar facilmente para que, se algo der errado ao usar as informa\u00e7\u00f5es que voc\u00ea est\u00e1 prestes a importar, voc\u00ea esteja coberto e simplesmente restaure o que j\u00e1 estava l\u00e1. Para ser claro, exporte todo o banco de dados no formato SQL.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be94139d.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163965-61e75be94139d.jpg\" alt=\"O Guia do Desenvolvedor WordPress para Reconstru\u00e7\u00e3o de Dados MySQL\"><\/a><\/p>\n<p>Agora pegue o banco de dados que voc\u00ea tem em sua m\u00e1quina local e exporte essas informa\u00e7\u00f5es para um arquivo SQL tamb\u00e9m. Abra o arquivo exportado e certifique-se de que est\u00e1 usando uma instru\u00e7\u00e3o <strong>CREATE<\/strong> para criar o banco de dados com o nome pr\u00f3prio e as tabelas com os nomes pr\u00f3prios tamb\u00e9m.<\/p>\n<p>Supondo que tudo corra bem, tudo o que voc\u00ea importou ser\u00e1 restaurado exatamente como deveria e como voc\u00ea v\u00ea em seu dispositivo local. Se voc\u00ea n\u00e3o vir isso, importe o arquivo exportado anteriormente; caso contr\u00e1rio, voc\u00ea est\u00e1 pronto para ir.<\/p>\n<h4>E se n\u00e3o funcionar?<\/h4>\n<p>Se n\u00e3o funcionar, voc\u00ea ter\u00e1 que ir at\u00e9 a raiz do problema:<\/p>\n<ul>\n<li>N\u00e3o funcionou por causa de algo errado com os arquivos do servidor?<\/li>\n<li>N\u00e3o funcionou devido ao tipo de banco de dados que voc\u00ea criou em sua m\u00e1quina local?<\/li>\n<li>Voc\u00ea est\u00e1 usando o mesmo mecanismo de armazenamento? Voc\u00ea deveria estar, j\u00e1 que est\u00e1 vindo dos arquivos.<\/li>\n<li>A integridade do banco de dados \u00e9 s\u00f3lida localmente?<\/li>\n<li>O banco de dados no servidor est\u00e1 sendo exclu\u00eddo antes de importar os dados de sua m\u00e1quina local?<\/li>\n<\/ul>\n<p>Se n\u00e3o estiver funcionando neste momento, geralmente ser\u00e1 por causa de algo como o que est\u00e1 acima. No entanto, pode ser outra coisa. Fiz o que pude para fornecer o m\u00e1ximo de informa\u00e7\u00f5es poss\u00edvel sobre bancos de dados MySQL, como eles s\u00e3o estruturados e as etapas necess\u00e1rias para reconstruir o banco de dados a partir de arquivos, mas n\u00e3o consigo capturar todos os casos extremos em potencial.<\/p>\n<h2>Sempre fa\u00e7a backup dos dados (e n\u00e3o assuma que est\u00e1 sendo feito)<\/h2>\n<p>Dito isso, espero que todas as informa\u00e7\u00f5es acima forne\u00e7am uma compreens\u00e3o mais profunda do que est\u00e1 por baixo do WordPress, caso voc\u00ea enfrente esse problema por conta pr\u00f3pria ou com um cliente.<\/p>\n<p>E, finalmente, sempre backup. Fa\u00e7a backups manuais, fa\u00e7a backups autom\u00e1ticos e fa\u00e7a-os com frequ\u00eancia. Tamb\u00e9m n\u00e3o o limite ao banco de dados. Fa\u00e7a backup do banco de dados, do aplicativo e de tudo o que for necess\u00e1rio para alimentar a solu\u00e7\u00e3o.<\/p>\n<p>Se voc\u00ea fizer isso, n\u00e3o ter\u00e1 que se preocupar com todos os itens acima.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tudo o que voc\u00ea queria saber sobre como um banco de dados MySQL b\u00e1sico \u00e9 organizado no n\u00edvel do sistema de arquivos e como fazer a reconstru\u00e7\u00e3o de dados do MySQL.<\/p>\n","protected":false},"author":1,"featured_media":163966,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,846],"tags":[1170],"class_list":["post-230524","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230524"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230524\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/163966"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}