{"id":37331,"date":"2008-01-22T11:56:38","date_gmt":"2008-01-22T10:56:38","guid":{"rendered":"https:\/\/mancomun.gal\/mysql-proxy-ferramenta-para-optimizacion-do-funcionamento-de-mysql\/"},"modified":"2023-05-10T02:50:53","modified_gmt":"2023-05-10T00:50:53","slug":"mysql-proxy-ferramenta-para-optimizacion-do-funcionamento-de-mysql","status":"publish","type":"post","link":"https:\/\/mancomun.gal\/es\/mysql-proxy-ferramenta-para-optimizacion-do-funcionamento-de-mysql\/","title":{"rendered":"MySQL Proxy, ferramenta para optimizaci\u00f3n do funcionamento de MySQL"},"content":{"rendered":"<p style=\"margin-bottom: 0cm;\" align=\"justify\"><a title=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" target=\"_blank\" href=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" rel=\"noopener\"><\/p>\n<p>  <img decoding=\"async\" alt=\"http:\/\/www.mancomun.org\/images\/stories\/mysql_proxy.jpg\" src=\"http:\/\/www.mancomun.org\/images\/stories\/mysql_proxy.jpg\" align=\"right\" border=\"0\" hspace=\"10\" vspace=\"10\" \/>MySQL Proxy<\/a> \u00e9 un programa que se sit\u00faa entre o cliente e o servidor de MySQL que permite controlar, analizar e\/ou transformar a comunicaci\u00f3n. O cliente de MySQL con\u00e9ctase ao proxy, en vez de ao servidor, coas credenciais usuais e o proxy act\u00faa como un <a title=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" target=\"_blank\" href=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" rel=\"noopener\">\u00abhome no medio\u00bb<\/a> (<a title=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" target=\"_blank\" href=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" rel=\"noopener\">Man in the middle<\/a>).<\/p>\n<p>\u00a0<\/p>\n<div align=\"justify\">\n<p>MySQL Proxy permite realizar un n\u00famero ilimitado de usos com\u00fans son: balanceo de carga, tolerancia a erros, an\u00e1lise das consultas; filtrado das consultas e\/ou modificaci\u00f3ns, e moitas funcionalidades m\u00e1is que poden ser programadas.<\/p>\n<\/div>\n<div align=\"justify\">\n<ul>\n<li><b>Balanceo de carga<\/b>: por exemplo se queremos tirar de certas consultas m\u00e1is lentas noutra m\u00e1quina que ten unha replica da base de datos.<\/li>\n<li>&#8230;\n<p><\/li>\n<\/ul>\n<\/div>\n<p><\/p>\n<ul>\n<li><b>Failover<\/b>: supo\u00c3\u00b1amos que o servidor de base de datos \u00e2??c\u00c3\u00a1ese\u00e2?\u009d, podemos realizar unha copia ao \u00e2??voo\u00e2?\u009d das petici\u00c3\u00b3ns e almacenalas para o seu posterior uso.<\/li>\n<li><b>An\u00c3\u00a1lise de petici\u00c3\u00b3ns<\/b>: porque non analizar que tipo de petici\u00c3\u00b3ns fanse comunmente dunha forma m\u00c3\u00a1is \u00e2??transparente\u00e2?\u009d sen necesidade de tocar o noso servidor de \u00e2??produci\u00c3\u00b3n\u00e2?\u009d, as\u00c3\u00ad por exemplo analizar tempos de resposta, realizar estat\u00c3\u00adsticas xerais, etc.<\/li>\n<li><b>Filtrado de petici\u00c3\u00b3ns<\/b>: Podemos crear un filtro de seguridade para certas petici\u00c3\u00b3ns que non desexamos; que por exemplo certas m\u00c3\u00a1quinas realicen cara a MySQL, ou alg\u00c3\u00ban tipo de filtro de seguridade que examine petici\u00c3\u00b3ns potencialmente perigosas (inxecci\u00c3\u00b3n de instrucci\u00c3\u00b3ns, escape \u00c3\u00a1 shell para executar comandos, inserci\u00c3\u00b3ns en certas t\u00c3\u00a1boas, &#8230;)<\/li>\n<li><b>Modificaci\u00c3\u00b3n<\/b>: Do mesmo xeito que o filtro anterior, podemos determinar que petici\u00c3\u00b3ns non queremos e polo tanto modificalas \u00e2??ao voo\u00e2?\u009d. Un divertido exemplo seria filtrar unha consulta \u00c3\u00a1 t\u00c3\u00a1boa \u00e2??password\u00e2?\u009d entregando un hash incorrecto, para que os potenciais atacantes se de golpes na cabeza pensando porque se estando crackeada a contrasinal non funciona.<\/li>\n<\/ul>\n<p align=\"justify\">MySQL Proxy v\u00c3\u00a9n co linguaxe de programaci\u00c3\u00b3n Lua embebido que se pode empregar na programaci\u00c3\u00b3n de novas funcionalidades coma por exemplo na reescritura de consultas SQL.<\/p>\n<p align=\"justify\">Est\u00c3\u00a1n dispo\u00c3\u00b1ibles <a title=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy_Cookbook\" target=\"_blank\" href=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy_Cookbook\" rel=\"noopener\">outros exemplos en Lua para MySQL Proxy<\/a> que poden servir de base para desenvolver scripts propios:<\/p>\n<ul>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=75\" target=\"_blank\" rel=\"noopener\">interceptar consultas<\/a> <\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=76\" target=\"_blank\" rel=\"noopener\">reescritura de consultas <\/a> <\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=77\" target=\"_blank\" rel=\"noopener\">inxecci\u00c3\u00b3n de consultas<\/a> <\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=78\" target=\"_blank\" rel=\"noopener\">devolvendo un resultset<\/a> <\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=79\" target=\"_blank\" rel=\"noopener\">executando comandos da shell<\/a> <\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=80\" target=\"_blank\" rel=\"noopener\">loggin<\/a><\/li>\n<li><a title=\"Scripts en Lua\" href=\"http:\/\/forge.mysql.com\/snippets\/view.php?id=82\" target=\"_blank\" rel=\"noopener\">empregando o proxy sen mudar o porto<\/a><\/li>\n<\/ul>\n<p>MySQL Proxy est\u00c3\u00a1 baixo licenza GNU\/GPL.<\/p>\n<p>M\u00c3\u00a1is informaci\u00c3\u00b3n:<\/p>\n<blockquote>\n<p>\u00c2\u00bb <a title=\"http:\/\/www.oreillynet.com\/pub\/a\/databases\/2007\/07\/12\/getting-started-with-mysql-proxy.html\" target=\"_blank\" href=\"http:\/\/www.oreillynet.com\/pub\/a\/databases\/2007\/07\/12\/getting-started-with-mysql-proxy.html\" rel=\"noopener\"> P\u00c3\u00a1xina do proxecto<\/a><\/p>\n<p>\u00c2\u00bb <a title=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" target=\"_blank\" href=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" rel=\"noopener\">Titorial de MySQL Proxy<\/a><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p style=\"margin-bottom: 0cm;\" align=\"justify\"><a title=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" target=\"_blank\" href=\"http:\/\/forge.mysql.com\/wiki\/MySQL_Proxy\" rel=\"noopener\"><\/p>\n<p>  <img decoding=\"async\" alt=\"http:\/\/www.mancomun.org\/images\/stories\/mysql_proxy.jpg\" src=\"http:\/\/www.mancomun.org\/images\/stories\/mysql_proxy.jpg\" align=\"right\" border=\"0\" hspace=\"10\" vspace=\"10\" \/>MySQL Proxy<\/a> \u00e9 un programa que se sit\u00faa entre o cliente e o servidor de MySQL que permite controlar, analizar e\/ou transformar a comunicaci\u00f3n. O cliente de MySQL con\u00e9ctase ao proxy, en vez de ao servidor, coas credenciais usuais e o proxy act\u00faa como un <a title=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" target=\"_blank\" href=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" rel=\"noopener\">\u00abhome no medio\u00bb<\/a> (<a title=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" target=\"_blank\" href=\"http:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle\" rel=\"noopener\">Man in the middle<\/a>).<\/p>\n<p>\u00a0<\/p>\n<div align=\"justify\">\n<p>MySQL Proxy permite realizar un n\u00famero ilimitado de usos com\u00fans son: balanceo de carga, tolerancia a erros, an\u00e1lise das consultas; filtrado das consultas e\/ou modificaci\u00f3ns, e moitas funcionalidades m\u00e1is que poden ser programadas.<\/p>\n<\/div>\n<div align=\"justify\">\n<ul>\n<li><b>Balanceo de carga<\/b>: por exemplo se queremos tirar de certas consultas m\u00e1is lentas noutra m\u00e1quina que ten unha replica da base de datos.<\/li>\n<li>&#8230;\n<p><\/li>\n<\/ul>\n<\/div>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-37331","post","type-post","status-publish","format-standard","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/posts\/37331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/comments?post=37331"}],"version-history":[{"count":1,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/posts\/37331\/revisions"}],"predecessor-version":[{"id":37332,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/posts\/37331\/revisions\/37332"}],"wp:attachment":[{"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/media?parent=37331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/categories?post=37331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mancomun.gal\/es\/wp-json\/wp\/v2\/tags?post=37331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}