Copiar Tabela SQL (MYSQL) ou duplicar
Duplicar ou copiar uma tabela inteira para outra no MYSQL E SQL SERVER.
Hoje tive que fazer um update daqueles em uma tabela do Mysql, para poder melhorar os índices. Entretanto, como estou acostumado com o SQL Server, apanhei um pouco na hora de escrever a sintaxe correta no MYSQL. Por esta razão estou postando os comandos tanto do SQL SERVER quanto do MYSQL para o dump da tabela.
Lembrando que fazer cópia de uma tabela antes de aplicar um update complicado, é muito importante, pois assim, você não precisa restaurar o banco todo, mas sim apenas voltar a tabela em questão!
Para ambos os casos ( Mysql e Sql) o comando em questão é o INSERT INTO junto com um select. Ou seja, ele faz uma consulta, e depois insere esta consulta em algum lugar.
1 º) SQL SERVER
USE NOME DO BANCO SELECT * INTO TABELA_NOVA FROM TABELA_ORIGINAL
2 º) MYSQL
CREATE TABLE tabela_nova LIKE tabela_original; INSERT INTO tabela_nova SELECT * FROM tabela_original;
A diferença além da sintaxe, basicamente é que no Mysql você deve primeiro criar a tabela_nova, antes de executar o comando INSERT INTO, enquanto que no Sql Server você não precisa criar a tabela primeiro, no momento do INSERT INTO, a tabela_nova é criada com a mesma estrutura da tabela_original .
Conectando remotamente no MYSQL usando o Shell!
Conectando remotamente no MYSQL usando o Shell!
Quando precisar acessar um Banco Mysql remotamente via shell, utilizar a sintaxe abaixo:
mysql -u username -p -P n_port -h ip_host database_name
Exemplo:
mysql -u jacques.beijer -p -P 73307 -h 201.201.201.745 cafeina_database
Lembrando que você precisa definir permissão de acesso (grant) para o host que irá acessar, essa permissão tem que ser feita no host que hospeda o banco de dados. Esta permissão (tem um post meu só sobre permissões) pode ser definida com o comando abaixo:
root@takakaos:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. mysql> grant all privileges on *.* to usuario@ip_host_remoto IDENTIFIED BY 'senha_xpto'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye root@takakaos:~#
Para conectar usando tunel, usar a sequência abaixo:
ssh -L 73307:mysql.host.com:3306 user@host.com mysql -u user -p -P 73307 -h 127.0.0.1 database
Conectar remotamente no Mysql do Zimbra!
Conectando remotamente no Mysql do Zimbra!
Hoje ao tentar conectar no banco Mysql do Zimbra usando o Mysql Query Browser a partir da minha máquina, vi que não estava conseguindo por estar com acesso negado e ao ir fazer a liberação notei que as configurações do mysql não estavam como default.
Para resolver este problema podemos agir da seguinte forma.
Logar na conta do zimbra:
su zimbra
Em seguida conectar no banco com usuário padrão do zimbra:
mysql -u zimbra
Ele irá logar normalmente. Após isto, vamos conceder a permisssão no Mysql:
grant all privileges on *.* to `usuario`@`ip_remoto` IDENTIFIED BY "senha_desejada" WITH GRANT OPTION; flush privileges; exit
Substitua o termo usuario para o login que você deseja utilizar, bem como senha_desejada para a senha que você irá utilizar e o ip_remoto para o ip do computador a qual você pretende utilizar para acessar o banco.
Pronto, agora temos um usuários para acessar o banco do Zimbra, lembrando que você pode inserir ‘root’@’%’ para dar acesso root a partir de qualquer host da rede. Lembrando que o Mysql do Zimbra Utiliza a porta 7306.
Agora precisamos abrir o Mysql para aceitar conexões não apenas localmente, mas de outros hosts também. Para fazer esta alteração, temos que editar o arquivo /opt/zimbra/conf/my.cnf e comentar a opção bind-address = localhost e salvar o arquivo:
vim /opt/zimbra/conf/my.cnf #bind-address = localhost
Após esta alteração, reinicie o mta com os comandos abaixo e seu acesso estará permitido.
zmcontrol stop zmcontrol start
Pronto.
[]’s