<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Leandro Nunes dos Santos &#187; mysql</title>
	<atom:link href="http://www.leandronunes.net/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leandronunes.net</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 11 Feb 2011 11:29:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>Copyright &#xA9; Leandro Nunes dos Santos 2010 </copyright>
		<managingEditor>leandronunes@gmail.com (Leandro Nunes dos Santos)</managingEditor>
		<webMaster>leandronunes@gmail.com (Leandro Nunes dos Santos)</webMaster>
		<category>posts</category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>Just another WordPress weblog</itunes:summary>
		<itunes:author>Leandro Nunes dos Santos</itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name>Leandro Nunes dos Santos</itunes:name>
			<itunes:email>leandronunes@gmail.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.leandronunes.net/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.leandronunes.net/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Leandro Nunes dos Santos</title>
			<link>http://www.leandronunes.net</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Movendo banco de dados mysql corretamente</title>
		<link>http://www.leandronunes.net/2009/06/movendo-banco-de-dados-mysql-corretamente/</link>
		<comments>http://www.leandronunes.net/2009/06/movendo-banco-de-dados-mysql-corretamente/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 17:50:31 +0000</pubDate>
		<dc:creator>Leandro Nunes</dc:creator>
				<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.leandronunes.net/?p=68</guid>
		<description><![CDATA[Algumas vezes eu preciso rodar um banco mysql que eu copiei de um computador para outro e existem alguns detalhes que se você não prestar atenção você pode acabar perdendo muito tempo em pequenas besteiras.
Primeiro só utilize as dicas deste post caso você tenha um banco de dados muito grande, onde dump do banco leve [...]]]></description>
			<content:encoded><![CDATA[<p>Algumas vezes eu preciso rodar um banco mysql que eu copiei de um computador para outro e existem alguns detalhes que se você não prestar atenção você pode acabar perdendo muito tempo em pequenas besteiras.</p>
<p>Primeiro só utilize as dicas deste post caso você tenha um banco de dados muito grande, onde dump do banco leve bastante tempo para ser gerado. </p>
<p>Caso contrário basta você digitar o comando:</p>
<p><code><br />
   mysqldump -u user -p password database_name > database_dump.sql<br />
</code></p>
<p>no computador que você quer extrair o <em>dump</em> e depois o comando abaixo:</p>
<p><code><br />
  mysql database_name < database_dump.sql<br />
</code></p>
<p>no computador que você deseja armazenar o novo banco de dados.</p>
<p>Mas se este não é o seu caso e você possui uma base de 10gb ou mais, gerar o dump de uma bases dessas é muito complicado, pois demora muito e as vezes copiar todo o banco num pendrive e substituir os arquivos no novo computador vale mais a pena.</p>
<p>Então para isso basta copiar a pasta  '/var/lib/mysql'  para um pendrive, e tem que ser um pendrive grande já que isso só é aconselhável quando se está manipulando bases muito grandes <img src='http://www.leandronunes.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , e depois substituir a pasta '/var/lib/mysql' do servidor no qual você quer que o banco de dados rode por esta pasta copiada.</p>
<p>É aconselhável fazer um bakcup da pasta /var/lib/mysql antes de substituir os arquivos. Assim você poderá repetir este processo e rodar o antigo banco de dados novamente.</p>
<p>No meu caso ficou assim:</p>
<p></code><code></p>
<p>No computador 1<br />
root@barker:~/$ cp -r /var/lib/mysql /media/disk-1</p>
<p>No computador 2<br />
root@smurf:~/$ mv /var/lib/mysql /var/lib/mysql.orig<br />
root@smurf:~/$ cp -r /media/disk-4/mysql /var/lib</p>
<p></code></p>
<p>Antes de rodar este comando no &#8216;Computador 2&#8242; pare o apache.</p>
<p><code><br />
/etc/init.d/apache stop<br />
</code></p>
<p>Observe que para fazer a cópia dos arquivos você terá que ter acesso ao <em>root</em> do computador.</p>
<p>Ao realizar a cópia, as pastas terão permissão somente para o usuário root, então rode o comando:</p>
<p><code><br />
chown mysql.mysql /var/lib/mysql -R<br />
</code></p>
<p>Agora o usuário mysql terá permissão para acessar os arquivos.</p>
<p>Se você tentar inicializar o apache novamente terá o seguinte problema:</p>
<p><code><br />
root@smurf:/var/lib# /etc/init.d/mysql start<br />
Starting MySQL database server: mysqld ..<br />
Checking for corrupt, not cleanly closed and upgrade needing tables..<br />
/usr/bin/mysqladmin: connect to server at 'localhost' failed<br />
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'<br />
root@smurf:/var/lib# ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)<br />
</code></p>
<p>Este erro ocorre pois você copiou a pasta do mysql de um outro computador que possuía configurações específicas daquele computador. Neste caso a configuração em questão é a senha do usuário do banco debian-sys-maint que é o usuário que o sistema operacional utiliza para realizar algumas operações no banco.</p>
<p>O usuário debian-sys-maint é como se fosse o usuário root do banco. Ele é utilizado para realizar executar certos scripts de manutenção no Debian.</p>
<p>Abaixo segue uma breve descrição deste usuário encontrada no arquivo README.Debian:</p>
<blockquote><p>
* MYSQL WON&#8217;T START OR STOP?:<br />
=============================</p>
<p>You may never ever delete the special mysql user &#8220;debian-sys-maint&#8221;.<br />
This user together with the credentials in /etc/mysql/debian.cnf are used by the init  scripts to stop the server as they would require knowledge of the mysql root  users password else.
</p></blockquote>
<p>Então para que o banco possa inicializar corretamente eu preciso dar acesso ao usuário debian-sys-maint ao banco. O Debian utiliza este usuário com a senha definida no arquivo &#8216;/etc/mysql/debian.cnf&#8217;.</p>
<p><code><br />
[client]<br />
host     = localhost<br />
user     = debian-sys-maint<br />
password = ********************<br />
socket   = /var/run/mysqld/mysqld.sock<br />
[mysql_upgrade]<br />
user     = debian-sys-maint<br />
password =  ********************<br />
socket   = /var/run/mysqld/mysqld.sock<br />
basedir  = /usr<br />
</code></p>
<p>Então precisamos modificar a senha do usuário &#8216;debian-sys-maint&#8217; pela senha contida neste arquivo.</p>
<p>Se você não tiver nenhum acesso ao banco, ou seja, nenhum login e senha de usuário para poder modificar a senha do usuário debian-sys-maint então continue lendo o post caso contrário leia também <img src='http://www.leandronunes.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Reinicie o mysql com o comando:</p>
<p><code><br />
/usr/bin/mysqld_safe --skip-grant-tables &#038;<br />
</code></p>
<p>Logue no console mysql:</p>
<p><code><br />
root@smurf:# mysql<br />
</code></p>
<p>E modifique as permissões do usuário &#8216;root&#8217; e do usuário &#8216;debian-sys-maint&#8217;. Assim você terá acesso ao banco com o usuário &#8216;root&#8217; também.</p>
<p><code><br />
mysql> UPDATE mysql.user SET Password=PASSWORD('password')    WHERE User='root';<br />
mysql>  FLUSH PRIVILEGES;<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;<br />
mysql>  FLUSH PRIVILEGES;</p>
<p></code></p>
<p>Substitua a palavra password pelo password que você encontrou no arquivo &#8216;/etc/mysql/debian.cnf&#8217;</p>
<p>Agora basta derrubar o servidor e carregá-lo novamente.</p>
<p><code><br />
  /etc/init.d/mysql stop<br />
  /etc/init.d/mysql start<br />
</code></p>
<p>Não  use o comando &#8216;/etc/init.d/mysql restart&#8217; pois o mysql poderá iniciar com a opção &#8216;&#8211;skip-grant-tables&#8217;  e você não quer isso <img src='http://www.leandronunes.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>E tudo funcionará bem agora, pelo menos em teoria <img src='http://www.leandronunes.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandronunes.net/2009/06/movendo-banco-de-dados-mysql-corretamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

