Menu fechado

Categoria: MySQL

como renomear database em MySQL?

Hoje vamos falar de como voce pode facilmente renomear um database em MySQL, Na versao 5.1.7 do MySQL foi adicionado um comando próprio para fazer isso chamado RENAME DATABASE RENAME {DATABASE | SCHEMA} db_name TO new_db_name; Porém ele foi retirado na versão 5.1.23 pois poderia resultar em perda de dados. Então vamos ver algumas formas de tornar esse processo possível: 1. Utilizando o comando RENAME TABLE: As long as two databases are on the same file system, you can use RENAME TABLE to move a table from one database to another: RENAME TABLE current_db.tbl_name TO other_db.tbl_name; RENAME TABLE Syntax na Documentacao do MySQL mysql> show tables; +———————+ | Tables_in_oldSchema | +———————+ | tb1 | | tb10 | | tb2 | | tb3 | | tb4 | | tb5 | | . . .

Gostou ? Ajude e Compartilhe!

Replicação em MySQL – Master – Slave

Para explicar a replicação, iremos utilizar o artigo Instalando MySQL 5.5 Parte 2 – Múltiplas instâncias pois iremos precisar de 2 instâncias rodando no nosso servidor. Iremos ativar os logs binários do nosso servidor, criando um arquivo my_rep.cnf com o seguinte conteúdo: [mysqld_multi] mysqld = /mysql/mysql/bin/mysqld_safe mysqladmin = /mysql/mysql/bin/mysqladmin [mysqld1] port = 3306 datadir = /mysql/3306/data socket = /mysql/3306/mysql.sock log-error = /mysql/3306/logs/mysqld.log pid-file = /mysql/3306/mysqld.pid server_id = 1 #LOGS log-bin = /mysql/3306/logs/server1_bin.log log-bin-index = /mysql/3306/logs/server1_log-bin.index expire_logs_days = 7 binlog-format = MIXED [mysqld2] port = 3307 datadir = /mysql/3307/data socket = /mysql/3307/mysql.sock log-error = /mysql/3307/logs/mysqld.log pid-file = /mysql/3307/mysqld.pid server_id = 2 #LOGS relay-log = /mysql/3307/logs/server2.relay_log relay-log-index = /mysql/3307/logs/server2.relay_log_index expire_logs_days = 7 Feito isso vamos iniciar o serviço conforme o artigo: cd /mysql/mysql mysqld_multi –defaults-file=/mysql/my_rep.cnf start Agora vamos conectar no servidor 3306 . . .

Gostou ? Ajude e Compartilhe!

Optimizar consultas em MySQL com query cache

  EDIT: Cuidado. Query Cache pode causar problemas de performance e escalabilidade em ambientes com muitas sessões simultâneas. Use com cuidado. Hoje vamos falar de uma ferramenta bem bacana do MySQL, o query cache. o query cache salva resultados de SELECT’s já executados e que seus dados brutos não tenham sido alterados tornando assim o tempo de resposta da query muito mais otimizada, pois ele vai buscar da memória e não do disco. Ele pode trabalhar de 3 maneiras diferentes, no nosso my.ini dentro do grupo [mysqld]: query_cache_type = 0 Desligado query_cache_type = 1 Ligado para todas as query’s query_cache_type = 2 Ligado sobre demanda Mas qual a melhor maneira de utilizar o query cache? Tendo em vista que toda a vez que você altera dados em alguma tabela, ele invalida . . .

Gostou ? Ajude e Compartilhe!

Backup compactado em MySQL – mysqldump – gzip – bzip2

Hoje vamos falar de um assunto muito importante para administradores de banco de dados, o BACKUP. Existem várias estratégias de backup, snapshot, dump, dump + binlog, tudo depende da sua necessidade e do tamanho do seu banco de dados. Vou explanar um pouco sobre a ferramenta que o próprio MySQL nos provê, que é o mysqldump, eu indico esta ferramenta para bancos de dados que possuam até 15gb/20gb, mais que isso, a probabilidade de você ter problemas para restaurar um backup e a grande demora, o tornam inviável. Como o mysqldump funciona? Ele nada mais faz do criar comandos sql para nossa estrutura e dados e os jogar no arquivo indicado. Primeiramente, vou explicar algumas das mais importantes opções do mysqldump depois, para quem tem o MySQL instalado em um . . .

Gostou ? Ajude e Compartilhe!

Instalando MySQL 5.5 Parte 2 – Multiplas instancias com mysqld_multi

Dando continuidade ao nosso post anterior, hoje vamos subir varias instâncias do MySQL em um mesmo servidor, pratica muito comum hoje em dia, ao invés de criar uma única instância com 100% dos recursos do servidor, se divide a carga de QPS (querys por segundo) entre várias instâncias. O mysqld_multi irá procurar por grupos [mysqldN] dentro do nosso arquivo de configurações my.cnf, onde N é um numero inteiro que será utilizado posteriormente para referenciarmos qual servidor vamos dar START STOP ou visualizar o REPORT Já temos a seguinte estrutura em nosso servidor: |_3306/   |_data/   |_logs/ Vamos criar a estrutura da instância 3307 e ajustar os direitos dela: mkdir 3307 mkdir 3307/data mkdir 3307/logs chown -R mysql:mysql /mysql/3307 Criaremos agora a estrutura padrão do banco pelo script contido na . . .

Gostou ? Ajude e Compartilhe!

Instalando MySQL 5.5 Parte 1 – Uma unica instancia

Hoje vou ensinar como instalar um servidor MySQL de forma simples. Com apenas uma unica instância, na segunda parte deste artigo, vou ensinar a instalar varias instâncias do MySQL e controla-las através do mysqld_multi. Para este tutorial estou utilizando: VMWare CentOS 5.6 – 64bits 512MB RAM 40GB DISCO Instalação sem interface gráfica, somente linha de comando Dito isso, vamos ao que realmente interessa: Vamos criar a estrutura de diretórios que vamos trabalhar com nossa instalação do MySQL, para este tutorial vou instalar na raiz da partição: cd / mkdir mysql cd mysql Vamos ao site de Downloads do MySQL e baixar da ultima versão Community Server que hoje é a 5.5.11. Utilizaremos a compilação Linux Generic e buscar pelo pacote tar.gz da sua versão de sistema operacional: wget http://mysql.cce.usp.br/Downloads/MySQL-5.5/mysql-5.5.11-linux2.6-x86_64.tar.gz Uma . . .

Gostou ? Ajude e Compartilhe!

Recuperar senha root MySQL

Caso você tenha perdido a senha de root do MySQL ou simplesmente não se lembra dela, não se preocupe, segue o passo a passo para você recupera-la: Parar o serviço do MySQL caso ele esteja de pé “/etc/init.d/mysql stop” Subir o servidor “skipando” a camada responsável por verificar os privilégios de usuários /usr/bin/mysqld_safe –skip-grant-tables & , lembrando que quando você subir o servidor com esta opção, ele irá aceitar que qualquer usuário se conecte ao banco de dados MySQL com acesso TOTAL a TODOS os bancos de dados então, para inibir que outras pessoas se conectem ao banco no período em que você estará fazendo a manutenção sugiro que você utilize o seguinte comando para subir o banco de dados /usr/bin/mysqld_safe –skip-grant-tables –skip-networking & ,neste caso, não serão aceitas conexões . . .

Gostou ? Ajude e Compartilhe!