<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>torradeira.net &#187; MySQL</title>
	<atom:link href="http://torradeira.net/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://torradeira.net</link>
	<description>Milhares de dicas e tutoriais de informatica!</description>
	<lastBuildDate>Thu, 16 Sep 2010 23:42:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Alterando a senha do mysql</title>
		<link>http://torradeira.net/alterando-a-senha-do-mysql/</link>
		<comments>http://torradeira.net/alterando-a-senha-do-mysql/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 20:46:29 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://torradeira.net/alterando-a-senha-do-mysql/</guid>
		<description><![CDATA[Aqui vou mostrar como recuperar / trocar / alterar /mudar  a senha do mysql para o usuario root ou outros usuarios: Para alterar a senha do root do mysql use: mysqladmin -u root password NOVASENHA Para alterar a senha antiga por uma nova de qualquer usuario use: mysqladmin -u LOGIN -p SENHAANTIGA SENHANOVA troque a [...]]]></description>
			<content:encoded><![CDATA[<p>Aqui vou mostrar como recuperar / trocar / alterar /mudar  a senha do mysql para o usuario root ou outros usuarios:</p>
<p>Para alterar a senha do root do mysql use:</p>
<p><span id="more-299"></span>mysqladmin -u root password NOVASENHA</p>
<p>Para alterar a senha antiga por uma nova de qualquer usuario use:</p>
<p>mysqladmin -u LOGIN -p SENHAANTIGA SENHANOVA</p>
<p>troque a palavra login pelo nome de usuario que voce quer.</p>
<p>até!</p>
<div id="crp_related"><h3>Artigos relacionados:</h3><ul><li><a href="http://torradeira.net/alterando-a-senha-do-seu-msn-net-passport/" rel="bookmark" class="crp_title">Alterando a senha do seu MSN &#8211; Net Passport</a></li><li><a href="http://torradeira.net/qual-a-senha-de-root-no-ubuntu/" rel="bookmark" class="crp_title">Qual a senha de root no Ubuntu?</a></li><li><a href="http://torradeira.net/pegando-a-senha-do-administrador-no-windows-xp/" rel="bookmark" class="crp_title">Pegando a senha do administrador no windows XP</a></li><li><a href="http://torradeira.net/como-recuperar-a-senha-de-um-usuario-ou-root-no-ubuntu/" rel="bookmark" class="crp_title">Como recuperar a senha de um usuario ou root no Ubuntu?</a></li><li><a href="http://torradeira.net/configurando-apache2php5mysqlphpmyadmin/" rel="bookmark" class="crp_title">Configurando Apache2+PHP5+MySQL+PHPMYADMIN</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://torradeira.net/alterando-a-senha-do-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faça exames e simulados aqui no Blog</title>
		<link>http://torradeira.net/faca-exames-e-simulados-aqui-no-blog/</link>
		<comments>http://torradeira.net/faca-exames-e-simulados-aqui-no-blog/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 00:12:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Adm. Linux]]></category>
		<category><![CDATA[AdSense]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Leis de Informática]]></category>
		<category><![CDATA[Licenças]]></category>
		<category><![CDATA[Modems]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Receitas de Bolo]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[warez]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://torradeira.net/faca-exames-e-simulados-aqui-no-blog/</guid>
		<description><![CDATA[Bem, inspirado por outros sites que contém simulados e exames decide fazer um nova área no blog destinada a exames e simulados, alguns úteis e outros nem tanto.. como este primeiro que fiz para testar a funcionalidade do plugin e aceitação da idéia no blog. Para acessar o primeiro exame clique aqui Na próxima semana [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, inspirado por outros sites que contém simulados e exames decide fazer um nova área no blog destinada a exames e simulados, alguns úteis e outros nem tanto.. como este primeiro que fiz para testar a funcionalidade do plugin e aceitação da idéia no blog.</p>
<p>Para acessar o primeiro exame clique <a href="http://torradeira.net/exame-de-conhecimento-tecnico-sobre-o-wordpress/">aqui</a></p>
<p>Na próxima semana provavelmente segunda vou colocar já a disposição um simulado para quem deseja fazer a prova LPI 101, o exame será feito por um profissional da área que já fez a prova e passou se certificando na LPI 101.</p>
<p>Aos poucos e conforme pedidos vou colocando novos exames e simulados!</p>
<p>até</p>
<p>Daniel</p>
<div id="crp_related"><h3>Artigos relacionados:</h3><ul><li><a href="http://torradeira.net/quer-fazer-um-simulado-para-as-provas-da-lpi/" rel="bookmark" class="crp_title">Quer fazer um Simulado para as provas da LPI</a></li><li><a href="http://torradeira.net/livro-para-estudar-para-certificacao-lpi-101-e-102/" rel="bookmark" class="crp_title">Livro para estudar para Certificação LPI 101 e 102</a></li><li><a href="http://torradeira.net/como-um-blogueiro-deve-saber-o-que-escrever/" rel="bookmark" class="crp_title">Como um blogueiro deve saber o que escrever</a></li><li><a href="http://torradeira.net/como-instalar-temas-e-plugins-no-seu-blog-wordpress/" rel="bookmark" class="crp_title">Como instalar temas e plugins no seu blog WordPress</a></li><li><a href="http://torradeira.net/6-plugins-para-aumentar-sua-produtividade/" rel="bookmark" class="crp_title">6 Plugins para aumentar sua produtividade</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://torradeira.net/faca-exames-e-simulados-aqui-no-blog/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adicionando Novos Usuários ao MySQL</title>
		<link>http://torradeira.net/adicionando-novos-usuarios-ao-mysql/</link>
		<comments>http://torradeira.net/adicionando-novos-usuarios-ao-mysql/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 12:22:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://torradeira.net/adicionando-novos-usuarios-ao-mysql/</guid>
		<description><![CDATA[Existem duas maneiras de adicionar usuários: utilizando instruções GRANT ou manipulando as tabelas de permissões do MySQL diretamente. O método preferido é utilizar instruções GRANT, porque elas são mais concisas e menos propensas a erros. See Secção 4.4.1, “A Sintaxe de GRANT e REVOKE”. Existem vários programas de colaboradores (como o phpMyAdmin) que podem ser [...]]]></description>
			<content:encoded><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Existem duas maneiras de adicionar usuários: utilizando instruções GRANT ou manipulando as tabelas de permissões do MySQL diretamente. O método preferido é utilizar instruções GRANT, porque elas são mais concisas e menos propensas a erros. See <a target="_blank" href="http://dev.mysql.com/doc/refman/4.1/pt/grant.html">Secção 4.4.1, “A Sintaxe de GRANT e REVOKE</a>”.<br />
</em><br />
Existem vários programas de colaboradores (como o phpMyAdmin) que podem ser utilizados para criar e administrar usuários. </font></p>
<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span id="more-73"></span></p>
<p>Os exemplos abaixo mostram como usar o cliente mysql para configurar novos usuários. Estes exemplos assumem que privilégios são configurados de acordo com os padrões descritos na seção anterior. Isto significa que para fazer alterações, você deve se conectar na mesma máquina em que o mysqld está executando, você deve se conectar com o usuário root, e o usuário root deve ter os privilégios inster ao banco de dados mysql e o administrativo reload. Também, se você alterou a senha do usuário root, você deve especificá-la para os comandos mysql abaixo.</p>
<p>Primeiro, use o programa mysql para se conectar ao servidor como o usuário root do MySQL:</p>
<p>shell> mysql &#8211;user=root mysql</p>
<p>Você pode adicionar novos usuários utilizando instruções GRANT:</p>
<p>mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost<br />
IDENTIFIED BY &#8216;alguma_senha&#8217; WITH GRANT OPTION;<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@&#8217;%&#8217;<br />
IDENTIFIED BY &#8216;alguma_senha&#8217; WITH GRANT OPTION;<br />
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;<br />
mysql> GRANT USAGE ON *.* TO dummy@localhost;</p>
<p>Estas instruções GRANT configuram três novos usuários:</p>
<p>* monty</p>
<p>Um superusuário completo que pode conectar ao servidor de qualquer lugar, mas deve utilizar uma senha &#8216;alguma_senha&#8217; para fazer isto. Perceba que devemos utilizar instruções GRANT para monty@localhost e monty@&#8221;%&#8221;. Se nós não adicionarmos a entrada com localhost, a entrada para o usuário anônimo para localhost que é criada por mysql_install_db toma precedência quando nos conectarmos da máquina local, porque ele contem um campo Host com um valor mais específico e também vem antes na ordenação da tabela user.</p>
<p>* admin</p>
<p>Um usuário que possa conectar de localhost sem uma senha e que é concedido os privilégios administrativos reload e process. Isto permite ao usuário a execução dos comandos mysqladmin reload, mysqladmin refresh e mysqladmin flush-*, bem como o mysqladmin processlist. Nenhum privilégio a nível de bancos de dados é concedido. (Depois eles podem ser adicionados utilizando instruções GRANT adicionais.)</p>
<p>*dummy</p>
<p>Um usuário que pode conectar sem uma senha, mas somente na máquina local. Não são concedidos nenhum privilégio&#8212;o tipo de privilégio USAGE permite a criação de um usuário sem privilégios. Ele tem o efeito de criar todos os privilégios globais com &#8216;N&#8217;. Considera-se que você irá conceder privilégios específicos a conta posteriormente.</p>
<p>Também é possível adicionar a mesma informação de acesso do usuário diretamente, utilizando instruções INSERT e depois dizendo ao servidor para recarregar as tabelas de permissões:</p>
<p>shell> mysql &#8211;user=root mysql<br />
mysql> INSERT INTO user VALUES(&#8216;localhost&#8217;,'monty&#8217;,PASSWORD(&#8216;alguma_senha&#8217;),<br />
&#8216;Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;);<br />
mysql> INSERT INTO user VALUES(&#8216;%&#8217;,'monty&#8217;,PASSWORD(&#8216;alguma_senha&#8217;),<br />
&#8216;Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;);<br />
mysql> INSERT INTO user SET Host=&#8217;localhost&#8217;,User=&#8217;admin&#8217;,<br />
Reload_priv=&#8217;Y', Process_priv=&#8217;Y';<br />
mysql> INSERT INTO user (Host,User,Password)<br />
VALUES(&#8216;localhost&#8217;,'dummy&#8217;,&#8221;);<br />
mysql> FLUSH PRIVILEGES;</p>
<p>Dependendo da sua versão do MySQL, você pode precisar utilizar um número diferente de valores &#8216;Y&#8217; acima. (Versões anteriores à versão 3.22.11 tem menos campos de privilégios, e posteriores a 4.02 têm mais). Para o usuário admin, a maior sintaxe legível de INSERT usando SET que está disponível a partir da versão 3.22.11 é a utilizada.</p>
<p>Note que para configurar um superusuário, você só precisar criar uma entrada na tabela user com os campos de privilégios configurados para &#8216;Y&#8217;. Não é necessário gerar entradas nas tabelas db ou host.</p>
<p>Na última instrução INSERT (para o usuário dummy), apenas as colunas Host, User e Password nos registros da tabela user tem valores atribuídos. Nenhuma das colunas de privilégios são definidas explicitamente, assim o MySQL atribui a todas o valor padrão de &#8216;N&#8217;. Isto é a mesma coisa que o GRANT USAGE faz.</p>
<p>O seguinte exemplo adiciona um usuário custom que pode acessar o banco de dados bankaccout apenas do localhost, o banco de dados expenses somente de whitehouse.gov e o banco de dados customer de todas de server.domain. Ele deseja utilizar a senha obscure das três máquinas.</p>
<p>Para configurar os privilégios deste usuário utilizando instruções GRANT, execute estes comandos:</p>
<p>shell> mysql &#8211;user=root mysql<br />
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br />
->     ON bankaccount.*<br />
->     TO custom@localhost<br />
->     IDENTIFIED BY &#8216;obscure&#8217;;<br />
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br />
->     ON expenses.*<br />
->     TO custom@&#8217;whitehouse.gov&#8217;<br />
->     IDENTIFIED BY &#8216;obscure&#8217;;<br />
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP<br />
->     ON customer.*<br />
->     TO custom@&#8217;server.domain&#8217;<br />
->     IDENTIFIED BY &#8216;obscure&#8217;;</p>
<p>Para configurar os privilégios do usuário modificiando as tabelas de permissões diretamente, utilize estes comandos (perceba o FLUSH PRIVILEGES no final):</p>
<p>shell> mysql &#8211;user=root mysql<br />
mysql> INSERT INTO user (Host,User,Password)<br />
-> VALUES(&#8216;localhost&#8217;,'custom&#8217;,PASSWORD(&#8216;obscure&#8217;));<br />
mysql> INSERT INTO user (Host,User,Password)<br />
-> VALUES(&#8216;whitehouse.gov&#8217;,'custom&#8217;,PASSWORD(&#8216;obscure&#8217;));<br />
mysql> INSERT INTO user (Host,User,Password)<br />
-> VALUES(&#8216;server.domain&#8217;,'custom&#8217;,PASSWORD(&#8216;obscure&#8217;));<br />
mysql> INSERT INTO db<br />
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,<br />
->  Create_priv,Drop_priv)<br />
-> VALUES<br />
-> (&#8216;localhost&#8217;,'bankaccount&#8217;,'custom&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;);<br />
mysql> INSERT INTO db<br />
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,<br />
->  Create_priv,Drop_priv)<br />
-> VALUES<br />
-> (&#8216;whitehouse.gov&#8217;,'expenses&#8217;,'custom&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;);<br />
mysql> INSERT INTO db<br />
-> (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,<br />
->  Create_priv,Drop_priv)<br />
-> VALUES(&#8216;server.domain&#8217;,'customer&#8217;,'custom&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;,'Y&#8217;);</p>
<p>Como no exemplo anterior que usaram as instruções INSERT, você pode precisar de usar um número diferentes de valores &#8216;Y&#8217;, dependendo de sua versão do MySQL.</p>
<p>As primeiras três instruções INSERT adicionam entradas na tabela user que permite ao usuário custom conectar a partir de várias máquinas com a senha determinada, mas não concede permissões ao mesmo (todos os privilégios são configurados com o valor padrão de &#8216;N&#8217;). As próximas três instruções INSERT adicionam entradas na tabela db que concedem privilégios à custom para os bancos de dados bankaccount, expenses e customer, mas só quando acessados à partir das máquinas apropriadas. Normalmente, depois de modificar as tabelas de permissões diretamente, você deve dizer ao servidor para recarregá-las (com FLUSH PRIVILEGES) para que as alterações nos privilégios tenham efeito.</p>
<p>Se você deseja fornecer a um usuário específico acesso de qualquer máquina em um determinado domínio (por exemplo, meudomínio.com), você pode utilizar uma instrução GRANT como a seguir:</p>
<p>mysql> GRANT &#8230;<br />
->     ON *.*<br />
->     TO myusername@&#8217;%.mydomain.com&#8217;<br />
->     IDENTIFIED BY &#8216;mypassword&#8217;;</p>
<p>Para realizar a mesma coisa modificando diretamente as tabelas de permissões, faça isto:</p>
<p>mysql> INSERT INTO user VALUES (&#8216;%.meudominio, &#8216;meunomedeusuario&#8217;<br />
PASSWORD(&#8216;minhasenha&#8217;),&#8230;);<br />
mysql> FLUSH PRIVILEGES;</p>
<p>This is a translation of the MySQL Reference Manual that can be found at <a target="_blank" href="http://dev.mysql.com/doc/mysql/en">dev.mysql.com</a>. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.</font></p>
<div id="crp_related"><h3>Artigos relacionados:</h3><ul><li><a href="http://torradeira.net/mysql-velocidade/" rel="bookmark" class="crp_title">Mysql: velocidade</a></li><li><a href="http://torradeira.net/alterando-a-senha-do-mysql/" rel="bookmark" class="crp_title">Alterando a senha do mysql</a></li><li><a href="http://torradeira.net/configurando-apache2php5mysqlphpmyadmin/" rel="bookmark" class="crp_title">Configurando Apache2+PHP5+MySQL+PHPMYADMIN</a></li><li><a href="http://torradeira.net/breve-introducao-ao-mysql/" rel="bookmark" class="crp_title">Breve introdução ao MySQL</a></li><li><a href="http://torradeira.net/instalando-o-postgresql/" rel="bookmark" class="crp_title">Instalando o postgresql</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://torradeira.net/adicionando-novos-usuarios-ao-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breve introdução ao MySQL</title>
		<link>http://torradeira.net/breve-introducao-ao-mysql/</link>
		<comments>http://torradeira.net/breve-introducao-ao-mysql/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 11:57:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://torradeira.net/breve-introducao-ao-mysql/</guid>
		<description><![CDATA[Distribuição: Qualquer uma autor: Rafael V. Aroca &#8211; rafael@linuxqos.cjb.net Nota do autor Ao escrever este manual, não pude gastar muito tempo dando atenção a todos os itens. Peço desculpas antecipadamente por alguma falha no documento, e agradeço eventuais colaborações e sugestões. Molhando seus pés Breve introdução ao MySQL Bancos de dados, hoje em dia, são [...]]]></description>
			<content:encoded><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Distribuição: Qualquer uma<br />
autor: Rafael V. Aroca &#8211; rafael@linuxqos.cjb.net<br />
</em><br />
Nota do autor</p>
<p>Ao escrever este manual, não pude gastar muito tempo  dando atenção a todos os itens. Peço desculpas antecipadamente por alguma falha  no documento, e agradeço eventuais colaborações e sugestões.<br />
<span id="more-63"></span><br />
Molhando  seus pés</p>
<p>Breve introdução ao MySQL</p>
<p>Bancos de dados, hoje  em dia, são parte fundamental da vida de quase todos seres humanos. Viver sem  sistemas de bancos de dados em nosso mundo, é hoje em dia praticamente  impossível. Sem nem mesmo perceber, a todo momento estamos usando um banco de  dados, mesmo nas mais triviais tarefas.</p>
<p>Bancos, universidades e  bibliotecas são três exemplos de organizações que dependem totalmente de bancos  de dados. A própria internet, usa um sistema de banco de dados para controle e  funcionamento dos sites, como este.</p>
<p>Normalmente, bases de dados com  muitas informações são armazenadas em computadores de grande porte, chamados de  servidores, e que permitem o uso das mesmas informações, através de uma rede,  por um número ilimitado de usuários.</p>
<p>Um dos mais rápidos programas  para servidores de SQL (do inglês, &#8220;Linguagem de pesquisa simples&#8221;),  hoje no mercado, é o MySQL, desenvolvido pela T.c.X. DataKonsultAB. Este  programa está disponível para download em sua versão original em <a href="http://www.mysql.com/">www.mysql.com</a>,  em inglês, e também em <a href="http://www.mysql.com.br/">www.mysql.com.br</a> para sua versão brasileira.</p>
<p>Além de oferecer vários recursos não existentes em outros servidores, o MySQL  tem a vantagem de ser totalmente gratuito para uso tanto comercial, quanto  privado.</p>
<p>As principais metas da equipe de desenvolvimento do MySQL é  construir um servidor rápido e robusto.</p>
<p>Os recursos acima mencionados  incluem:</p>
<p>- Capacidade de lidar com um número ilimitado de usuários;</p>
<p>- Capacidade de manipular mais de cinqüenta milhões (50.000.000)</p>
<p>de registros;</p>
<p>- Execução muito rápida de comandos,  provavelmente o mais rápido</p>
<p>do mercado;</p>
<p>- Sistema de  segurança simples e funcional.</p>
<p>Além de todas estas vantagens, não se  pode esquecer de mencionar o</p>
<p>fato do MySQL ser gratuito para o  público em geral.</p>
<p>Quem usa o MySQL:</p>
<p>- Silicon  Graphics (<a href="http://www.sgi.com/">www.sgi.com</a>)</p>
<p>- Siemens (<a href="http://www.siemens.com/">www.siemens.com</a>)</p>
<p>- Yahoo  (<a href="http://www.yahoo.com/">www.yahoo.com</a>)</p>
<p>Existem sistemas rodando servidor MySQL com bases de  dados de 200 Gigabytes!!! Caso você ache isto insuficiente,  verifique a lista completa de usuários do MySQL.</p>
<p>Indo mais fundo</p>
<p>Visão geral</p>
<p>A partir deste capítulo, começaremos a usar o MySQL  na prática, para tal, é preciso que você tenha acesso a algum servidor com o  MySQL instalado e funcionando devidamente. A instalação do MySQL será abordada  posteriormente.</p>
<p>A forma mais comum de se utilizar o MySQL, é via  telnet. Uma vez conectado ao servidor, um segundo comando permite o acesso ao  servidor MySQL.</p>
<p>Para acessar o servidor MySQL, é preciso utilizar o  comando que segue. É importante lembrar, que o MySQL tem seu próprio cadastro de  nomes e senhas, sendo que você pode possuir uma conta no servidor SQL, mas não  telnet, e o oposto também é válido.</p>
<p>mysql -u elaine -p supersenha</p>
<p>Sintaxe:</p>
<p><strong>mysql -u (usuário) -p (senha)</p>
<p>ou</p>
<p>mysql -h servidor -u (usuário) &#8211;password=(senha)</strong></p>
<p>Após  validada a senha, e pré-supondo que o MySQL tenha sido</p>
<p>corretamente  instalado, você verá algo como:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Cliente MySQL &#8211; NBS</p>
<p>Bem vindo ao monitor do MySQL. Use ; após os  comandos ou \g.</p>
<p>Sua id é 49, e você está conectado a um servidor  versão 3.21.23-beta-log</p>
<p>Digite &#8216;help&#8217; para ajuda.<br />
<strong>mysql></strong></p>
<p>Uma vez no prompt do MySQL, podemos começar a  utilizar os comandos do MySQL e manipular os dados e o servidor. Contudo, antes  de modificar a base de dados, nós devemos escolher qual desejamos usar, da  seguinte forma:</p>
<p><strong>mysql>use teste;</strong></p>
<p>Base de dados  alterada.</p>
<p>Troque teste, pelo nome da base de dados desejada. Você  obterá uma mensagem confirmando a alteração da base de dados. Isto significa que  você está conectado a ela.</p>
<p>Repare que o comando está seguido de ponto  e vírgula, pois como em C, a maioria dos comandos do MySQL são sucedidos por  ponto e vírgula.</p>
<p>Antes de fazer qualquer coisa, seria interessante  você consultar a ajuda, que listará os comandos disponíveis neste momento da  execução do MySQL. Isto deve ser feito através do comando help.</p>
<p><strong>mysql>help</strong></p>
<p>Provavelmente, nem todas as funções serão úteis  neste momento, porém é bom gastar um tempo aprendendo cada uma delas para uso  futuro.</p>
<p>Por outro lado, funções como status, connect, clear, e quit  serão usadas com uma freqüência tão grande que você deve se familiarizar com  elas.</p>
<p>Neste ponto, você deve ter um conhecimento básico de como  conectar-se ao servidor, selecionar a base de dados, e executar operações  simples. No próximo capítulo, aprenderemos os conceitos e técnicas necessárias  para preparar e manter uma base de dados.</p>
<p>Até seu pescoço em MySQL</p>
<p>Tabelas e campos</p>
<p>Chegamos! Talvez no capítulo mais  difícil deste texto. Você logo entenderá, portanto, tenha uma ótima noção de  bases de dados!</p>
<p>Algumas pessoas podem achar fácil, mas minha  experiência no assunto, diz que muitas pessoas têm dificuldades sobre os  conceitos básicos de bases de dados. Portanto, só passe para o próximo tópico  quando você estiver plenamente seguro que domina os conceitos de bases de dados.</p>
<p>Uma base de dados, nada mais é do que estruturas complexas de dados.  Estes dados são gravados em forma de registros em tabelas.</p>
<p>Parece  simples, certo? Façamos então uma analogia para que este conceito se torne ainda  mais simples:</p>
<p>Imagine um arquivo de fichas, numa empresa onde há  várias caixas, cada uma contendo os dados dos funcionários de um certo setor.</p>
<p>Cada caixa possui várias fichas, que são os cadastros dos  funcionários &#8211; cada ficha contém os dados de apenas um funcionário.</p>
<p>Indo mais longe, podemos concluir que cada ficha contém diversas informação  sobre o funcionário em questão:</p>
<p>Portanto, cada caixa é uma tabela,  contendo diversas fichas, que são os registros, e cada ficha possui várias  informações sobre o funcionário, que são os campos.</p>
<p>Como foi dito, há  várias caixas, uma para cada departamento, a soma de todas as caixas forma a  base de dados.</p>
<p>Observando tudo isto de fora, podemos formar o  seguinte esquema:</p>
<p>Base de dados < Tabela < Registro < Coluna  (datatype)</p>
<p>Banco de dados < Tabela < Linha < Campo</p>
<p>As duas linhas acima mostram os termos normalmente usados para o que  acabamos de aprender.</p>
<p>Os campos podem ser de diferentes tipos e  tamanhos, permitindo ao programador criar tabelas que satisfaçam ao escopo do  projeto. A decisão de quais campos usar e quais não usar é muito importante,  pois influi drasticamente na performance da base de dados que estamos  desenvolvendo, portanto, é de bom grado um conhecimento sólido destes conceitos.</p>
<p>A etapa de montagem das tabelas, é senão a mais importante, uma das  mais importantes etapas da montagem de uma base de dados, pois um bom projeto  pode facilitar muito o trabalho de programação.</p>
<p>Campos</p>
<p>Como já sabemos, os campos são a parte fundamental de uma base de dados. É  nos campos que as informações ficam armazenadas. Para um otimização da base de  dados, antes e utilizar, devemos definir os campos que desejamos usar, e  especificar o que cada um pode conter.</p>
<p>Tipos de campos no MySQL</p>
<p>O MySQL oferece os mais comuns campos, que até mesmo um programador  novato já deve ter visto. Alguns deles estão aqui listados:</p>
<p>CHAR(M)</p>
<p>Os campos CHAR são usados para caracteres alfanuméricos, como</p>
<p>endereços e nomes. Seu tamanho é fixo e instaurado ao ser criado. Um  campo do tipo CHAR pode ter de 1 a 255 caracteres.</p>
<p>Exemplo:<br />
<strong>endereco_comercial CHAR(10);</strong></p>
<p>Define um campo chamado  &#8216;endereco_comercial&#8217;, que pode conter</p>
<p>até dez letras.</p>
<p>Observe que não há acentos no nome do campo, pois muitos servidores não  acentuam, e sua tabela teria difícil acesso.</p>
<p>VARCHAR(M)</p>
<p>Sua estrutura e funcionamento é idêntico ao campo anterior, salvo</p>
<p>que  no tipo CHAR, o tamanho definido é fixo, e mesmo que não usado, aquele espaço em  disco é alocado. Já o campo VARCHAR, aloca apenas o espaço necessário para  gravação. Contudo, vale lembrar que trocamos espaço por velocidade, pois este  campo é 50% mais lento que o anterior.</p>
<p>Exemplo:<br />
<strong>endereco_comercial VARCHAR(10);</strong></p>
<p>Define um campo chamado  endereco_comercial que pode conter até</p>
<p>dez letras. Se você preencher  apenas duas, o campo não ocupara todos dez</p>
<p>bytes, mas apenas 2.</p>
<p>INT(M) [Unsigned]</p>
<p>O campo INT, que como o próprio número diz,  suporta o conjunto dos</p>
<p>números inteiros numa variação de -2147483648  a 2147483647. O parâmetro</p>
<p>Unsigned pode ser passado, excluindo os  números negativos, proporcionando um intervalo de 0 até 4294967295.</p>
<p>Exemplos:</p>
<p>carros_estocados INT;</p>
<p>Inteiro válido: -245</p>
<p>Inteiro válido: 245</p>
<p>Inteiro inválido: 3000000000</p>
<p>carros_estocados INT unsigned;</p>
<p>Inteiro válido: 245</p>
<p>Inteiro  inválido: -245</p>
<p>Inteiro inválido: 3000000000</p>
<p>FLOAT[(M,D)]</p>
<p>Os pontos flutuantes (FLOAT) representam pequenos números decimais, e  são usados para representar números com maior precisão.</p>
<p>Exemplo:<br />
voltagem_cadeira_eletrica FLOAT(4,2);</p>
<p>Float válido: 324.50</p>
<p>DATE</p>
<p>Campo usado para armazenar informações referentes a data.  A forma padrão ‚ é &#8216;AAAA-MM-DD&#8217;, onde AAAA corresponde ao ano, MM ao  mês, e DD ao dia. Ele pode variar de 0000-00-00 a 9999-12-31.</p>
<p>O MySQL  possui um conjunto poderoso de comandos de formatação e manipulação de datas.  Consulte documentação adicional, se houver interesse.</p>
<p>Exemplo:</p>
<p>data_de_nascimento DATE;</p>
<p>Data v lida: 1999-12-06</p>
<p>Data  invalida: 1999-06-12</p>
<p>TEXT/BLOB</p>
<p>Os campos texto e blob são  usados para guardar grandes quantidades de caracteres. Podendo conter de 0 a  65535 bytes, os blobs e texts são úteis para armazenar documentos completos,  como este que você está lendo. A única diferença entre os campos BLOB e TEXT  está no fato de um campo TEXT não ser sensível a letras maiúsculas e minúscula  quando uma comparação é realizada, e os BLOBs sim.</p>
<p>Exemplo:</p>
<p>relatorio BLOB;</p>
<p>BLOB válido: &#8216;Minha terra tem palmeiras onde  canta o&#8230;&#8217;</p>
<p>relatorio TEXT;</p>
<p>TEXT válido: &#8216;A que  saudades que eu sinto&#8230;&#8217;</p>
<p>SET</p>
<p>Um campo interessante,  que permite que o usuário faça uma escolha dado determinado número de opções.  Cada campo pode conter até‚ 64 opções.</p>
<p>Exemplo:<br />
vicio  SET(&#8220;cafe&#8221;, &#8220;cigarro&#8221;) NOT NULL;</p>
<p>Neste exemplo  este campo pode conter apenas os seguintes itens:</p>
<p>&#8220;&#8221;</p>
<p>&#8220;cafe&#8221;</p>
<p>&#8220;cigarro&#8221;</p>
<p>&#8220;cafe,cigarro&#8221;</p>
<p>ENUM</p>
<p>Um campo com funcionamento  semelhante ao SET, com a diferença que apenas um valor pode ser escolhido.</p>
<p>Exemplo:<br />
virtude ENUM(&#8220;programar&#8221;, &#8220;amar&#8221;) NOT  NULL;</p>
<p>Neste exemplo este campo pode conter os seguintes valores:</p>
<p>&#8220;&#8221;</p>
<p>&#8220;programar&#8221;</p>
<p>&#8220;amar&#8221;</p>
<p>Registros</p>
<p>Um conjunto de campos relacionados, forma o que  chamamos de registro. Um registro, portanto, pode ter a seguinte estrutura:</p>
<p>nome CHAR(15);</p>
<p>email CHAR(25);</p>
<p>telefone INT;</p>
<p>Neste exemplo, nosso registro contém três campos, podendo armazenar o email  e o telefone de uma determinada pessoa. Observe que o campo nome foi definido  como CHAR, portanto poderá conter qualquer tipo de caractere, contudo, o campo  telefone, definido como INT, poderá apenas conter números, pois foi configurado  como INT.</p>
<p>Tabelas</p>
<p>Um conjunto de registros, forma uma  tabela. As tabelas portanto, armazenam grande quantidade de dados. Como no  exemplo anterior, poderíamos ter centenas de nomes diferentes cadastrados em  nossa tabela de pessoas. Cada conjunto de dados corresponde a um registro.</p>
<p>Antes de usar uma base de dados, ou dar qualquer comando, nós precisamos de  uma tabela pelo menos, para armazenar os dados:</p>
<p>Isto pode ser feito  usando o comando CREATE TABLE, que recebe como parâmetro o nome da tabela que  desejamos usar.</p>
<p><strong>mysql> CREATE TABLE teste(</p>
<p>>codigo INT,</p>
<p>>nome CHAR(15),</p>
<p>>email CHAR(25),</p>
<p>>telefone INT);</strong></p>
<p>Notas:</p>
<p>- Não é possível  criar duas tabelas com o mesmo nome;</p>
<p>- Cada conjunto de dados, quando  visto em uma tabela, é também chamado linha;</p>
<p>- Você acaba de criar  sua primeira tabela!</p>
<p>Características das linhas:</p>
<p>- O  nome de uma coluna pode ter até 64 letras;</p>
<p>- O nome de uma coluna  pode começar com um número;</p>
<p>- O nome de uma coluna não pode ser  composto de números apenas.</p>
<p>Opções de uma tabela:</p>
<p>As  seguintes opções podem ser adicionadas a qualquer campo de uma tabela,  concatenando recursos adicionais a estes campos.</p>
<p>-Chave primária:  Usado para que não seja permitido, que o usuário consiga cadastrar dois  registros com chaves primárias iguais. Isto é claramente útil, quando não é  desejado que seja digitado um segundo registro igual ao primeiro por engano.  Para se definir uma chave primária, basta adicionar &#8216;PRIMARY KEY&#8217; a  definição do campo que se deseja a não duplicidade.</p>
<p>Exemplo:<br />
nome CHAR(15) PRIMARY KEY;</p>
<p>Esta declaração faz com que não seja  permitido o cadastro na tabela de dois registros com nomes iguais.</p>
<p>-Auto incremento: Este recurso, faz com que conforme novos registros são  criados, automaticamente estes obtém valores que correspondem ao valor deste  mesmo campo no registro anterior, somado a 1.</p>
<p>Exemplo:<br />
codigo  INT AUTO_INCREMENT;</p>
<p>Soma um a cada registro automaticamente neste  campo. Começando de 1, com inserção subsequente.</p>
<p>Comandos relativos  as tabelas:</p>
<p>Podemos executar comandos para saber as condições que as  tabelas se encontram, e também manipulá-las. Abaixo, poderemos conhecer os  fundamentais:</p>
<p>-Mostrar tabelas</p>
<p>Função:</p>
<p>Lista  todas as tabelas existentes no banco de dados atual.</p>
<p>Comando:<br />
mysql>show tables;</p>
<p>-Mostrar colunas</p>
<p>Função:</p>
<p>Mostra as informações referentes a estrutura, ou seja, as colunas da tabelas  desejada.</p>
<p>Comando:<br />
<strong>mysql>show columns from teste;</strong></p>
<p>Lembre-se de dedicar algum tempo a testes. Não tenha medo de danificar a  base de dados, pois o Administrador do servidor que você usa não daria a você  controle total dos dados, e se o servidor pertencer a você&#8230;&#8221;vai, faça o  que tu queres&#8221;.</p>
<p>Totalmente imerso em MySQL</p>
<p>Manipulando a base de dados</p>
<p>Uma base de dados pode ser manipulada com  quatro operações básicas: Incluir, Apagar, Altera, e Pesquisar. Estes tópicos  serão brevemente abordados nas seções seguintes, mas antes de mais nada, eu  gostaria de lembrar que como toda linguagem para computadores, o MySQL tem suas  regras. Um erro de parênteses que seja pode resultar no inverso do que você  espera. Portanto, fique atento a sintaxe de seus comandos.</p>
<p>É bom  saber também, que faremos todas experiências a partir de agora, usando a tabela  teste, criada no capítulo anterior. Portanto se você ainda não a criou, esta é  uma boa hora.</p>
<p>Aqui está ela novamente como uma rápida referência:</p>
<p>Seleciona base de dados:<br />
use teste;</p>
<p>Cria tabela:</p>
<p><strong>mysql> CREATE TABLE teste(</p>
<p>>codigo INT,</p>
<p>>nome CHAR(15),</p>
<p>>email CHAR(25),</p>
<p>>telefone  INT);</strong></p>
<p>Inserindo registros</p>
<p>Para se adicionar dados a  uma tabela, usamos o comando INSERT, que diz por si só sua função, como o  exemplo que segue:</p>
<p><strong>mysql>INSERT INTO teste VALUES</p>
<p>mysql>(NULL, &#8216;Ernesto&#8217;, &#8216;ernesto@nbsnet.com.br&#8217;,</p>
<p>mysql>2742729);s</strong></p>
<p>Observações:</p>
<p>-Apostrofes foram  colocadas na entrada de campos tipo CHAR. Todos os campos que contém texto, ou  seja, CHAR, VARCHAR, BLOB, TEXT, etc. têm de ficar entre apóstrofes, ou um erro  ocorrerá;</p>
<p>-Para campos do tipo número, não se usam apóstrofes.</p>
<p>-A entrada NULL em um campo do tipo auto-incremento, permite que o MySQL  providencie o conteúdo deste campo de forma automática. No caso do primeiro  campo, o valor será 1, no segundo 2, no terceiro 3 e assim consecutivamente.</p>
<p>-Se possuíssemos um campo DATE, a entrada NULL faria com que o valor  gravado no registro se torne a data atual.</p>
<p>Nota:</p>
<p>É  importante lembrar-se sempre de passar para o camando INSERT um número de  parâmetros igual ao número de campos na tabela que está recebendo os dados. Caso  contrario, você obterá uma mensagem de erro. O mesmo erro também ocorre ao  tentar inserir mais parâmetros do que o número de campos suportado pela tabela.</p>
<p>Nota 2:</p>
<p>Uma das grandes vantagens do MySQL é a capacidade  de facilmente converter sem problemas entre campos. O sistema automaticamente  converte entre números, caracteres, e datas sem problemas.</p>
<p>Pesquisando registros</p>
<p>Imagine que possuímos um carro de última  geração, com todos os recursos que a tecnologia atual pode permitir. Contudo,  nosso carro não tem roda, ou seja, não serve para nada, a não ser ostentar.  (Opinião pessoal: assim são os servidores M$).</p>
<p>A intenção de uma  base de dados, é ser útil, portanto, em contradição ao exemplo, ela precisa ter  rodas. No caso de qualquer base de dados, uma das roda é a pesquisa, afinal de  contas, o que seria um site de busca na Internet sem pesquisa?</p>
<p>As  pesquisas no MySQL são feitas através do comando SELECT. Este comando pode fazer  desde uma simples e trivial pesquisa até uma pesquisa extremamente complexa.</p>
<p>Exemplos:</p>
<p>Ação:</p>
<p><strong>mysql>SELECT * FROM  teste;</strong></p>
<p>Resultado:</p>
<p>Lista todos registros da tabela  teste.</p>
<p>Ação:</p>
<p><strong>mysql>SELECT * FROM teste</p>
<p>mysql>WHERE (nome = &#8220;Ernesto&#8221;);</strong></p>
<p>Resultado:</p>
<p>Lista todos os registros da tabela teste que contém &#8220;Ernesto&#8221; no  campo nome.</p>
<p>Nota:</p>
<p>Consulte maiores detalhes, e estude mais  itens relacionados a pesquisas SQL. Você pode economizar centenas de linha de  código em seus programas usando recursos de pesquisa.</p>
<p>Apagando  registros</p>
<p>Quando um registro não nos é mais útil, podemos apagá-lo,  para que a tabela não contenha dados obsoletos. Isto pode ser facilmente feito  usando o comando DELETE, que tem o funcionamento semelhante ao comando INSERT.</p>
<p>Ação:</p>
<p><strong>mysql>DELETE FROM teste</p>
<p>mysql>WHERE (telefone = 2744747);</strong></p>
<p>Resultado:</p>
<p>Apaga  da tabela teste todos os registros que têm o conteúdo &#8220;2744747&#8243; no  campo telefone.</p>
<p>Alterando registros</p>
<p>Suponhamos agora que  sua namorada trocou o telefone. A primeira providência, é alterar sua tabela  para que você não possua dados desatualizados. Para tal, existe o camando  UPDATE. Observe os exemplos:</p>
<p>Ação:</p>
<p><strong>mysql>UPDATE  teste SET nome = &#8216;ErnestaoOBao&#8217;</p>
<p>mysql>WHERE nome =  &#8216;Ernesto&#8217;;</strong></p>
<p>Resultado:</p>
<p>Procura na tabela um  registro que contenha no campo nome o conteúdo &#8216;Ernestao&#8217;, definido pelo  comando WHERE. Encontrado o registro, ele é substituido pelo nome definido no  comando SET, que é &#8216;ErnestaoOBao&#8217;.</p>
<p>Afogando-se em MySQL</p>
<p>Comando avançados</p>
<p>O que aprendemos até agora, quando comparado a  quantidade de recursos do MySQL, não chega a ser a ponta de um gigante ice-berg.  O MySQL é repleto de comandos avançados que permitem fazer operações para todas  as necessidades. Veremos agora alguns comandos avançados do MySQL:</p>
<p>Operadores lógicos:</p>
<p>O MySQL suporta todas operações lógicas, estando  abaixo listadas as mais conhecidas:</p>
<p><strong>AND (&#038;&#038;)</strong></p>
<p>O  operador lógico AND, ou E, deve ser usado em uma pesquisa que se deseja entrar  dois valores. O AND, verifica ambas as clausulas da comparação, e só retorna  algum valor se as duas tiverem uma resposta verdadeira. Observe o exemplo:</p>
<p><strong>mysql>SELECT * FROM teste WHERE</p>
<p>mysql>(nome =  &#8220;Aline&#8221;) AND</p>
<p>mysql>(telefone = 2728918);</strong></p>
<p>Esta pesquisa mostrara todos os registros que contém no campo nome e conteúdo  &#8220;Aline&#8221;, E (AND) no campo telefone, o conteúdo 2728988.</p>
<p>OR  (||)</p>
<p>O operador lógico OR, ou OU, deve ser usado em uma  pesquisa que se deseja entrar dois valores. O OR, verifica ambas as clausulas da  comparação, e retorna valores se qualquer um dos membros obtiver resultado.</p>
<p><strong>mysql>SELECT * FROM teste WHERE</p>
<p>mysql>(nome =  &#8220;Aline&#8221;) OR</p>
<p>mysql>(telefone = 2728918);</strong></p>
<p>Este pesquisa fará com que todos os resultados que contenham o conteúdo  &#8220;Aline&#8221; no campo nome, OU 2728918 sejam exibidos na tela.</p>
<p>NOT (!)</p>
<p>O operador lógico NOT, ou NÃO, realiza uma pesquisa,  excluindo valores determinados do resultado.</p>
<p><strong>mysql>SELECT *  FROM teste WHERE</p>
<p>mysql>(nome != &#8220;Aline&#8221;);</strong></p>
<p>Esta pesquisa listara todos os registros da base de dados teste, NÃO (NOT)  mostrando aqueles que possuem &#8220;Aline&#8221; como conteúdo do campo nome.</p>
<p>ORDER BY</p>
<p>O operador lógico ORDER BY, ou ORDENAR POR,  simplesmente lista os registros, colocando-os em ordem de acordo com o campo  solicitado.</p>
<p><strong>mysql>SELECT * FROM teste WHERE</p>
<p>mysql>(nome = &#8220;Aline&#8221;)</p>
<p>mysql>ORDER BY telefone;</strong></p>
<p>O resultado desta busca resultara em todos os registros contendo  &#8220;Aline&#8221; no campo nome, e a listagem será organizada de acordo com a  ordem do telefone.</p>
<p>CORINGAS &#8211; Ferramentas de pesquisa</p>
<p>Abordaremos agora, a capacidade do MySQL, de executar tantos pesquisas  gerais, como especificas em textos. A melhor forma de aprender estes recursos, é  através da prática, portanto, vamos estudar alguns exemplos, e observar o que  acontece.s</p>
<p><strong>mysql>SELECT * FROM teste WHERE</p>
<p>mysql>(nome LIKE &#8220;%s</strong></font></p>
<div id="crp_related"><h3>Artigos relacionados:</h3><ul><li><a href="http://torradeira.net/adicionando-novos-usuarios-ao-mysql/" rel="bookmark" class="crp_title">Adicionando Novos Usuários ao MySQL</a></li><li><a href="http://torradeira.net/mysql-velocidade/" rel="bookmark" class="crp_title">Mysql: velocidade</a></li><li><a href="http://torradeira.net/criar-sua-mala-direta/" rel="bookmark" class="crp_title">criar sua mala-direta</a></li><li><a href="http://torradeira.net/configurando-apache2php5mysqlphpmyadmin/" rel="bookmark" class="crp_title">Configurando Apache2+PHP5+MySQL+PHPMYADMIN</a></li><li><a href="http://torradeira.net/alterando-a-senha-do-mysql/" rel="bookmark" class="crp_title">Alterando a senha do mysql</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://torradeira.net/breve-introducao-ao-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql: velocidade</title>
		<link>http://torradeira.net/mysql-velocidade/</link>
		<comments>http://torradeira.net/mysql-velocidade/#comments</comments>
		<pubDate>Mon, 22 Jan 2007 23:58:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://torradeira.net/mysql-velocidade/</guid>
		<description><![CDATA[Conhecido por ser extremamente rápido e robusto, o MySQL é muito fácil de ser instalado no servidor Linux. É a solução mais econômica para redes mistas Fernando Augusto Medeiros Silva fernando@pcplace.com.br Florencio Guimarães Mariz Filho florencio@pcplace.com.br MySQL é um servidor de banco de dados SQL, que opera em múltiplas plataformas, abrangendo todas as variedades Linux, [...]]]></description>
			<content:encoded><![CDATA[<p><font size="+1" color="#245a9a">Conhecido por ser extremamente rápido e robusto, o MySQL é muito fácil de ser instalado no servidor Linux. É a solução mais econômica para redes mistas</font></p>
<p><em>Fernando Augusto Medeiros Silva</em><br />
<a href="mailto:fernando@pcplace.com.br">fernando@pcplace.com.br</a><br />
<em>Florencio Guimarães Mariz Filho</em><br />
<a href="mailto:florencio@pcplace.com.br">florencio@pcplace.com.br</a></p>
<p align="justify">MySQL é um servidor de banco de dados SQL, que opera em múltiplas plataformas, abrangendo todas as variedades Linux, AIX, FreeBSD, Irix e até Windows 95/98/NT.</p>
<p align="justify">Para plataformas Unix e OS/2, o MySQL é gratuito. E para a maioria das aplicações, você só paga pelo MySQL se ele estiver incluído em alguma aplicação.</p>
<p align="justify"><span id="more-27"></span></p>
<p>Entre suas características principais, destacam-se:</p>
<ul>
<li>Extremamente rápido e robusto;</li>
<li>Reconhece vários tipos de dados,incluindo VARCHAR, TEXT, BLOB, DATETIME, TIMESTAMP,SET e ENUM;</li>
<li>Possui interfaces com C, C++, Java, Perl,PHP, Python e TCL;</li>
<li>Interface para ODBC e JDBC;</li>
<li>Sistema de privilégio de acesso robusto e seguro, com controle   de acesso por computador do acesso por usuário, e também a   banco de dados, tabelas e colunas.</li>
</ul>
<p align="justify">Como limitações, podemos citar a ausência de replicação, controle de transações, integridade referencial, cursores no servidor e stored procedures.</p>
<h3>Instalação</h3>
<p align="justify">A última versão estável do MySQL, recomendada para instalação, é a 3.22.32. O pacote RPM atualizado está em <a target="blank" href="http://www.mysql.com.br/">www.mysql.org</a>,  e você precisa instalar, no mínimo, os de servidor:  <a href="http://web.mysql.com/Downloads/MySQL-3.22/MySQL-3.22.32-1.i386.rpm">web.mysql.com/Downloads/MySQL-3.22/MySQL-3.22.32-1.i386.rpm</a> e cliente: <a href="http://web.mysql.com/Downloads/MySQL-3.22/MySQL-client-3.22.32-1.i386.rpm">web.mysql.com/Downloads/MySQL-3.22/MySQL-client-3.22.32-1.i386.rpm</a>.</p>
<p align="justify">Opcionalmente, podem ser instaladas as bibliotecas de  desenvolvimento: <a href="http://web.mysql.com/Downloads/MySQL-3.22/MySQL-devel-3.22.32-1.i386.rpm">web.mysql.com/Downloads/MySQL-3.22/MySQL-devel-3.22.32-1.i386.rpm</a>.</p>
<p align="justify">O pacote RPM instalará os bancos de dados em /var/lib/mysql, não admitindo realocação via RPM. Assim, é bom reservar espaço suficiente para os bancos de dados na partição /var.</p>
<h3>Configuração</h3>
<p align="justify">Uma vez instalado, o MySQL está pronto para ser utilizado. A primeira coisa a fazer é alterar a senha do usuário root com o comando:</p>
<pre># mysqladmin -u root password `novasenha'</pre>
<p align="justify">Ao iniciar, o servidor procura pelo arquivo /etc/my.cnf, contendo parâmetros para inicialização, como número da porta e arquivo de socket. A instalação padrão grava um arquivo /usr/share/mysql/my-example.cnf, que copiado para /etc/my.cnf, pode ser utilizado como base para alterações nos parâmetros iniciais do servidor.</p>
<p align="justify">Além das opções gerais, na seção [mysqld] podemos especificar variáveis que afetam o desempenho e/ou o comportamento do MySQL. O arquivo exemplo já contém algumas previamente definidas :</p>
<pre><font face="courier">
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
</font></pre>
<ul>
<li><strong>Key_buffer</strong>: quantidade de memória reservada para buffer de  índices. O valor padrão é 8388600, ou 8MB. Um valor mais  elevado melhora o manuseio de índices, mas não se deve elevá-lo  a ponto de não sobrar memória, afetando o desempenho global.</li>
<li><strong>max_allowed_packet:</strong> Tamanho máximo de um pacote de dados.  Normalmente, 1MB, mas deve ser elevado caso se queira utilizar BLOBs de tamanho  superior a esse.</li>
<li><strong>thread_stack:</strong> Tamanho da pilha para cada thread. O valor padrão  é 64K, suficiente para a maioria das operações. Em caso de  falha em operações complexas, aumente esse valor.</li>
</ul>
<h3>Outras variáveis interessantes são:</h3>
<ul>
<li><strong>flush-time:</strong> Caso seja informado um valor não-zero, indica um número de segundos para que todas as tabelas sejam periodicamente fechadas e seus dados gravados no disco.</li>
<li><strong>long_query_time:</strong> Se uma consulta demorar mais que este valor,  em segundos, o contador Slow_queries será incrementado. O valor atual  deste contador pode ser visto com mysqladmin extended-status.</li>
<li><strong>max_connections:</strong> Número máximo de clientes  simultâneos. Normalmente cem, mas você pode aumentar se  necessário.</li>
<li><strong>sort_buffer:</strong> Normalmente 2MB, valor que pode ser aumentado para  agilizar consultas com as cláusulas Order By e Group By.</li>
<li><strong>log-update:</strong> Permite indicar o nome de um arquivo para registrar  todos os comandos que atualizam dados. Útil para replicação de banco de dados e para recuperação.</li>
</ul>
<p align="justify">Para uma lista completa das variáveis, use o comando mysqld -help e para uma lista dos valores em vigor, mysqladmin variables.</p>
<h3>Administração</h3>
<p align="justify">O comando mysqladmin pode ser utilizado para uma variedade de tarefas. As mais úteis são:</p>
<ul>
<li>create bancodedados: cria novo banco de dados com o nome especificado.</li>
<li>drop bancodedados: remove um banco de dados e todas as suas tabelas.</li>
<li>extended-status: mostra os valores de todas as variáveis atuais do servidor.</li>
<li>flush-hosts: remove da memória as informações de  conexão de todos os computadores. No caso de dez falhas de conexão,  um computador tem seu acesso bloqueado até a execução  desse comando.</li>
<li>flush-logs: Reabre todos os arquivos de logs.</li>
<li>flush-privileges: necessário após alteração  nas tabelas de controle de acesso.</li>
<li>password: troca a senha de um usuário.</li>
<li>ping: verifica se o servidor está respondendo.</li>
<li>shutdown: encerra a execução do servidor.</li>
</ul>
<p align="justify">Outro comando bastante útil é o mysqldump, que permite gravar em um arquivo texto todos os comandos SQL necessários para criar uma cópia de um banco de dados inteiro ou de uma ou mais tabelas. Gera o comando Create Table para cada tabela e Insert Into, para cada linha existente na tabela.</p>
<h3>Cliente MySQL</h3>
<p align="justify">Um aliado na utilização do MySql é o cliente mysql, com ele é possível administrar o servidor, criar tabelas, bases de dados, manipular dados no melhor estilo DBA. Para entrar no shell interativo:</p>
<pre><font face="courier">
#mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 459 to server version:3.22.20a-log
Type `help' for help.
mysql>
</font></pre>
<p align="justify">É possível também executar scripts no banco usando a stdin do cliente:</p>
<pre><font face="courier">
shell> mysql -h host -u user -p < script
Enter password: ********
Criando uma base de exemlo:
#mysql -u root -p < criabanco
#criabanco - Banco de dados de exemplo
#Fernando Augusto &#038; Florencio Guimarães
#22/03/2000
create database exemplo;
</font></pre>
<p align="justify">use exemplo;</p>
<pre><font face="courier">
create table usuarios(
id          INT AUTO_INCREMENT NOT NULL,
nome        VARCHAR(36),
telefone    VARCHAR(15),
endereco    VARCHAR(50),
nascimento  DATE,
senha       VARCHAR (15),
primary key (id)
,');
</font></pre>
<p>Inserindo dados:</p>
<pre><font face="courier">
mysql> insert into usuarios (NULL, `usuario1',`555-5226','Ruas dos Bobos n 0',
`1900-01-01 00:00', crypt(`senha') ,');
mysql> insert into usuarios VALUES (NULL,'linux',`222-2222','Esquina das listas',
'1991-01-01', encrypt(`saudade'),');
mysql> insert into usuarios VALUES (NULL,`garfield',`342-5689','Alam.das massas 140',
'1978-06 19',encrypt(`lazanha'),');
</font></pre>
<p>selecionando dados:</p>
<pre>mysql> select * from usuarios;
3 rows in set (0.00 sec)
mysql></pre>
<p><center></p>
<table cellspacing="1" cellpadding="1" border="1">
<tr>
<td>id</td>
<td>nome</td>
<td>telefone</td>
<td>endereço</td>
<td>nascimento</td>
<td>senha</td>
</tr>
<tr>
<td>1</td>
<td>usuario1</td>
<td>555-5226</td>
<td>Ruas dos Bobos n 0</td>
<td>1900-01-01</td>
<td>08TaLh2u7LorM</td>
</tr>
<tr>
<td>2</td>
<td>linux</td>
<td>222-2222</td>
<td>Esquina das listas</td>
<td>1991-01-01</td>
<td>bBSh3hDv5hCMQ</td>
</tr>
<tr>
<td>3</td>
<td>garfield</td>
<td>342-5689</td>
<td>Alam. das massas 140</td>
<td>1978-06-19</td>
<td>QGDyWV/RRMats</td>
</tr>
</table>
<p></center></p>
<p align="justify">Nota-se o uso da função encrypt. É a mesma da senha do Linux, assim é possível criar bases de dados de usuário com segurança.</p>
<h3>Interfaces</h3>
<p align="justify"><strong>PHP</strong> &#8211; o módulo de interface PHP/Apache com suporte para MySQL pode ser encontrado em <a href="ftp://ftp.conectiva.com.br/pub/conectiva/dsk/cls42pt/i386/conectiva/RPMS/mod_php3-mysql-3.0.12-1cl.i386.rpm">ftp.conectiva.com.br/pub/conectiva/dsk/cls42pt/i386/conectiva/RPMS/mod_php3-mysql-3.0.12-1cl.i386.rpm</a>.</p>
<p align="justify">A configuração do Apache para funcionamento  com PHP3 pode ser um pouco trabalhosa, necessitando de inclusão de  diretivas no arquivo httpd.conf. Consulte a documentação do Apache e do PHP3. Uma vez instalado, podemos obter dados de bancos de dados MySQL diretamente em páginas HTML. Um pequeno exemplo poderia ser:</p>
<pre><font face="courier">

";
mysql_connect(localhost,root,'',');
mysql_select_db(exemplo,');
$dados = mysql_query("SELECT * FROM usuarios",');
if ($linha = mysql_fetch_array($dados)){
do {
print $linha["id"];
print (" ",');
print $linha["nome"];
print (" ",');
print $linha["endereco"];
print (" ",');
print $linha["nascimento"];
print ("
",');
} while ($linha = mysql_fetch_array($dados),');
} else {
print "Nenhum usuario encontrado.";
}
?>
</font></pre>
<h3>ODBC</h3>
<p>O MyODBC é uma implementação de conector ODBC  para o MySQL, que permite acessar o banco de dados facilmente através  de clientes Windows. Disponível no site  <a href="http://web.mysql.com/download_myodbc.html">web.mysql.com/download_myodbc.html</a>,  nas versões Win 95 ou NT, é muito simples de instalar.  Após descomprimir o arquivo zip e executar o instalador, Windows com o driver MySQL. A configuração do driver é  mais simples ainda: você dá um nome para o DSN, coloca o  nome ou endereço do servidor, base de dados, usuário e senha.  Depois é só usar.</p>
<div id="crp_related"><h3>Artigos relacionados:</h3><ul><li><a href="http://torradeira.net/adicionando-novos-usuarios-ao-mysql/" rel="bookmark" class="crp_title">Adicionando Novos Usuários ao MySQL</a></li><li><a href="http://torradeira.net/alterando-a-senha-do-mysql/" rel="bookmark" class="crp_title">Alterando a senha do mysql</a></li><li><a href="http://torradeira.net/configurando-apache2php5mysqlphpmyadmin/" rel="bookmark" class="crp_title">Configurando Apache2+PHP5+MySQL+PHPMYADMIN</a></li><li><a href="http://torradeira.net/breve-introducao-ao-mysql/" rel="bookmark" class="crp_title">Breve introdução ao MySQL</a></li><li><a href="http://torradeira.net/graficos-em-php/" rel="bookmark" class="crp_title">Gráficos em PHP</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://torradeira.net/mysql-velocidade/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

