Featured Posts

Resetar senha do mysql 5 no windows para quem esqueceu Hoje eu estava dentro do mysql (no windows, acredito que no linux o processo tambem seja igual), e precisava trocar a senha dele por uma mais trivial. Tarefa fácil, ja fiz muitas vezes e não irei errar!...

Readmore

Resetar senha do mysql 5 no windows para quem esqueceu Hoje eu estava dentro do mysql (no windows, acredito que no linux o processo tambem seja igual), e precisava trocar a senha dele por uma mais trivial. Tarefa fácil, ja fiz muitas vezes e não irei errar!...

Readmore

Gráficos com Google Chart API Toda pessoa que se torna programador :P, um dia na vida pelo menos, vai ter a necessidade de mostrar dados em formas de gráficos! Veja agora um pouco de Google Chart API em 10 minutos. A API do Google...

Readmore

Backup e importação de dados no Mysql Se você tem acesso à maquina na qual o Mysql está instalado ou seu servidor permite conexões externas, você pode facilmente criar um backup de um banco de dados em poucos minutos. Primeiramente,...

Readmore

Extensão oci8 1.3.5 (Oracle database) para PHP 5 A versão 1.3.5 da extensão OCI8, responsável por fazer conxão do php com o banco de dados da Oracle, foi lançada recentemente. Em relação a ultima versão (1.3.4), foram corrigidos apenas bugs....

Readmore

  • Prev
  • Next

Função para retornar o mês desejado no mysql conforme o numero do mês passado.

Posted on : 22-02-2010 | By : Wryel | In : mysql

0

Esses tempos atrás eu esteva dando uma estudada no iReport 3.7.1 e nele tinha 3 campos com nomes dinâmicos que iriam ser alterados conforme dados que houvessem no banco, sendo eles, o cliente escolhia um mês corrente, e no relátório deveria vir o mês desejado e seus próximos 2 meses. Pensando em utilização, o cliente poderia escolher o mês de dezembro (12), e para aproveitar a função em tempo de execução, uma googlada basica cheguei nisso:

DELIMITER $
CREATE FUNCTION GET_STRING_MONTH(month INT)
RETURNS VARCHAR(9)
NO SQL
BEGIN
	DECLARE str_month VARCHAR(9);
	SET month = MOD(month, 12);
	CASE month
		WHEN 1 THEN SET str_month = 'Janeiro';
		WHEN 2 THEN SET str_month = 'Fevereiro';
		WHEN 3 THEN SET str_month = 'Março';
		WHEN 4 THEN SET str_month = 'Abril';
		WHEN 5 THEN SET str_month = 'Maio';
		WHEN 6 THEN SET str_month = 'Junho';
		WHEN 7 THEN SET str_month = 'Julho';
		WHEN 8 THEN SET str_month = 'Agosto';
		WHEN 9 THEN SET str_month = 'Setembro';
		WHEN 10 THEN SET str_month = 'Outubro';
		WHEN 11 THEN SET str_month = 'Novembro';
		WHEN 0 THEN SET str_month = 'Dezembro';
	END CASE;
	RETURN str_month;
END;$
DELIMITER ;

Só copiar a função, jogar no client do mysql utilizar como o exemplo:

SELECT GET_STRING_MONTH(1), GET_STRING_MONTH(6), GET_STRING_MONTH(18);

Ignorar foreign keys & relacinamentos no mysql na hora de realizar backup

Posted on : 15-12-2009 | By : Wryel | In : mysql

0

Em uma das empresas que trabalhei, a gente estava tendo dificuldade na hora de exportar um banco de dados que possuia relacionamentos e dependêcias um pouco complexos. Acontecia que o script de backup gerado pelo mysqldump sempre exportava algumas tabelas FILHAS antes das tabelas PAIS.

Quando você tentava importar pra dentro utilizando o client binario do mysql, ou até mesmo o phpmyadmin, ele acabava perdendo muitas chaves estrangeiras e até mesmo dados. Segue a solução que se adequou para nós.

Quando exportar dados no mysqldump, faça:

mysqldump -h seuHost -u seuUsuario -p nomeDoBanco --disable-keys > nomeDoSeuBackup.sql

Depois de exportado, abra o arquivo, e na primeira linha adicione:

SET foreign_key_checks = 0;

e no final do arquivo:

SET foreign_key_checks = 1;

Agora é só exportar normalmente o arquivo para dentro do mysql. Se preferir o client do mysql, o comando ficaria:

mysql -h seuHost -u seuUsuario -p nomeDoBanco < nomeDoSeuBackup.sql

Resetar senha do mysql 5 no windows para quem esqueceu

Posted on : 27-10-2009 | By : Wryel | In : mysql

0

Hoje eu estava dentro do mysql (no windows, acredito que no linux o processo tambem seja igual), e precisava trocar a senha dele por uma mais trivial. Tarefa fácil, ja fiz muitas vezes e não irei errar! Mero engano, por um descuido, acabei esquecendo de usar a funcao PASSWORD() e so me toquei da besteira que fiz depois de se deslogar …

Dentre as muitas alternativas que achei na net, a mais trivial foi esta aqui:

Procure pelo arquivo de propriedades do mysql chamado “my.ini”, geralmente localizado no diretorio principal do mysql como mostra a imagem abaixo:

diretorio principal do mysql

diretorio principal do mysql

Abra ele, e procure pela linha [mysqld], após ela, adicione a linha:

skip-grant-tables

mysql-arquivo2

Salve o arquivo e se logue pelo client do mysql. Note que ele não irá pedir senha desta vez. Agora para efetuar a troca da sua senha, digite o seguinte comando:

UPDATE mysql.user SET PASSWORD = PASSWORD('SUA NOVA SENHA AQUI') WHERE user = 'root' AND host='localhost';

Pronto, senha trocada, agora é só não esquecer de deletar a linha adicionada no arquivo my.ini (skip-grant-tables).

Esta dica foi retirada daqui: MySQL Windows Password Reset

Esqueci a senha do Postgre, como faço para trocar a senha ?

Posted on : 02-09-2009 | By : Wryel | In : postgre

4

Esses dias eu tive um problema com o Postgre, na qual eu estava em uma maquina antiga aonde ninguem sabia a senha do Postgre, como não havia dados relevantes, desinstalei o Postgre e eu fui tentar instalar um mais atual assim ja resolvendo o problema do usuário. Mero engano, mesmo que você desinstale o postgre, o desinstalador esquece(?) de remover o superusuario do postgre, assim, você só consegue instalar outro Postgre na maquina, caso saiba a senha do superusuario.

senha incorreta postgre

senha incorreta postgre

No pai google eu vi muita gente com o mesmo problema que eu, porém, não cheguei a uma solução rápida. A solução demorada que eu tinha achado era uma solução ja conhecida por muita gente aonde você fazia download de um programa e bootava ele com windows pela usb ou pelo drive de cd-rom. Eu até ja tinha o programa mas tava fazendo 1001 outras coisas ao mesmo tempo e não dava pra reiniciar a maquina. No final, vai pra lá, vai pra cá, isso ja to no google a umas 2 horas, e, numa pagina que não tinha nada a ver com o assunto, vi o cara dando a sugestão; Com uma conta de administrador, abra o Prompt de comando e digite os seguintes comandos:

net user

o comando acima irá listar todos os usuários.

cmd

cmd

O superusuario do postgre (postgres) vai aparecer na lista, agora para mudar a senha faça:

net user postgres *

O prompt irá pedir para você digitar uma nova senha, e depois irá pedir que você confirme esta senha.

prompt

prompt

Pronto, senha alterada, agora é só prosseguir com a instação.

instalação postgre

instalação postgre

Procedure com OPTIMIZE TABLE em todas as tabelas do mysql

Posted on : 07-08-2009 | By : Wryel | In : mysql

0

As vezes quando se tem um banco de dados com muitas tabelas, e após muitos inserts/updates você percebe que precisa de alguns OPTIMIZE TABLE tabela. Pra que perder uma hora buscando as tabelas certas ? Claro que, se você estiver em um ambiente de produção ai ja é outra história, de qualquer maneira, segue um ganha tempo:

DROP PROCEDURE IF EXISTS optimize_tables;
DELIMITER $$
CREATE PROCEDURE optimize_tables()
BEGIN
--
DECLARE $tabela VARCHAR(255);
DECLARE $contador INT DEFAULT 0;
DECLARE $linhas INT DEFAULT 0;
DECLARE $consulta CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = DATABASE();
--
OPEN $consulta;
SELECT FOUND_ROWS() INTO $linhas;
WHILE $contador < $linhas DO
	FETCH $consulta INTO $tabela;
	SET @query = CONCAT("OPTIMIZE TABLE ", $tabela);
	PREPARE query FROM @query;
	EXECUTE query;
	SET $contador = $contador + 1;
END WHILE;
CLOSE $consulta;
DEALLOCATE PREPARE query;
--
END$$
DELIMITER ; $$

Se você não souber o que fazer com o código acima, va no client do mysql e faça:

mysql -h ipDoMysql -u seuUsuario -p bancoDeDados|Se não tiver deixe um espaço em branco

digite sua senha, copie e cole o primeiro código e depois para executar:

CALL optimize_tables;