Milk News

2 Novembro, 2009

Habilitando acesso remoto ao MySQL

Arquivado em: MySQL — Marcelo @ 4:38 pm

Por padrão (e razões óbvias de segurança), a instalação padrão do MySQL não permite conexões remotas.  Se o amigo leitor chegou até aqui, é porque está com este “probleminha”.

Parte I – Habilitação do Serviço:

- Abra para edição o arquivo my.cnf (no Ubuntu fica em /etc/mysql/my.cnf, procure pelo nome do arquivo se sua distro for outra)

- Neste arquivo de configuração, procure pela seção abaixo:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address  = 127.0.0.1

Comente a linha skip-external-locking (colocando um sinal de tralha – # na linha) e substitua o IP na linha bind-address pelo IP da máquina que está instalado o MySQL Server.

Arquivo editado, restart no servidor para que as mudanças tenham efeito:

su /etc/init.d/mysql restart

Parte II – Acesso aos Databases:

Agora que o servico está configurado, é necessário dar o grant para que o usuário possa se conectar.  Eu pessoalmente, prefiro ir fazendo a combinação usuário + IP, mas pode se dar um irrestrito a partir de qualquer máqina. Cada um tem sua forma de administrar.

No exemplo abaixo, estou dando todos os previlégios ao usuário a partir de qualquer máquina.

GRANT ALL ON bancodedados.* TO usuario@%

Quer saber mais? Aqui.

1 Junho, 2008

Tabelas em Memória no MySQL

Arquivado em: Google, MySQL, Nerdices — Marcelo @ 12:31 am

Venho de uma sequência de trabalhos de mais ou menos uns 7 anos só com o Oracle.
Por conta de uns sistemas legados do que estou tendo que mexar agora, estou aprendendo a lidar com o MySQL. Não é lá um BD ‘porreta’ como o Oracle, mas considerando que ele é de graça, dá pro gasto. :)

Um dos recursos bacanas que descobri é que se pode criar uma tabela em memória no BD.
Para uma máquina sobrecarregada com operações de I/O, tabelas com muita frequencia de leitura/escrita, mas que os dados sejam bastante voláteis (por exemplo, a navegação de um usuário de um website mantida na sessão) é um recurso bastante interessante.

Coisas importantes a saber sobre tabelas em memória:
- Uma vez criada uma tabela em memória, ela permanece no schema, mas se o BD for resetado, os dados nelas contidos são perdidos.
- Tabelas mantidas em memória não podem conter campos do tipo BLOB ou TEXT

No exemplo que fiz abaixo, crio uma tabela de frases em memória e logo abaixo, faço a inserção de conteúdos nesta tabela em memória a partir de outra tabela (o MySQL é ‘inteligente’ o bastante para entender que se acabei de criar uma tabela e logo abaixo estou fazendo uma consulta é para ele inserir o resultado desta na tabela criada na instrução acima)

CREATE TABLE tmp_frases (id INT not null,
frase varchar(100) null,
index(id))
ENGINE = MEMORY
SELECT @rownum:=@rownum+1 as id,
t.frase
FROM (SELECT @rownum:=0) r,
textos t
where t.categoria = ‘Piadas’;

Moleza!
Depois de criada e utilizada, convém fazer o DROP TABLE da tabela para liberar memória do servidor do MySQL.

Quer saber mais? MySQL.
Leia esse aqui também.

Blog no WordPress.com.