Image via CrunchBase
Aqui está uma lista com algumas Interfaces Gráficas freeware ou opensource para o MySQL, sistema de gerenciamento de bancos de dados que utiliza a linguagem SQL (da sigla "Structured Query Language" - ou Linguagem de Consulta Estruturada) como interface, já que é um dos bancos de dados mais popular da atualidade.
GnomeMysqlClient (Software Livre) - Cliente gráfico para MySQL escrito em C usando bibliotecas GTK do GNOME. O objetivo desse programa é, pelo menos, fornecer a mesma funcionalidade dos clientes gráficos mais populares mas com ainda mais facilidade de uso: http://sourceforge.net/projects/gmyclient/files/
n. [acronym: Binary Large OBject] Used by database people to refer to any random large block of bits that needs to be stored in a database, such as a picture or sound file. The essential point about a BLOB is that it's an object that cannot be interpreted within the database itself.
v. To mailbomb someone by sending a BLOB to him/her; esp. used as a mild threat. "If that program crashes again, I'm going to BLOB the core dump to you."
Image by Gea-Suan Lin via Flickr
Um cliente MySQL em Unix pode conectar ao servidor mysqld de dois modos diferentes: sockets Unix, que conectam através de um arquivo no sistema de arquivos (padrão /tmp/mysqld.sock) ou TCP/IP, que conecta através um número de porta. Sockets Unix são mais rápidos que TCP/IP mas só podem ser usados quando conectados ao servidor no mesmo computador. Sockets Unix são usados se você não especificar um nome de máquina ou se você especificar o nome de máquina especial localhost.
No Windows, se o servidor mysqld está rodando no 9x/Me, você só pode conectar via TCP/IP. Se o servidor estiver rodando no NT/2000/XP e o mysqld é iniciado com --enable-named-pipe, você também pode conectar com named pipes. O nome do named pipes é MySQL. Se você não der um nome de máquina quando conectar ao mysqld, um cliente MySQL tentará conectar primeiro ao named pipe, e se isto não funcionar ele irá conectar a porta TCP/IP. Você pode forçar o uso de named pipes no Windows usando . como nome de máquina.
O erro (2002) Can't connect to ... normalmente significa que não há um servidor MySQL rodando no sistema ou que você está usando um arquivo socket ou porta TCP/IP errado ao tentar conectar so servidor mysqld.
Inicie verificando (usando ps ou gerenciador de tarefas do Windows) que há um processo chamado mysqld executando em seu sistema! Se não houver nenhum processo mysqld, você deve iniciar um. Veja Secção 2.4.2, "Problemas Inicializando o Servidor MySQL".
Se um processo mysqld estiver em execução, você pode verificar o servidor tentando estas diferentes conexões (o número da porta e o caminho do socket devem ser diferente em sua consiguração, é claro):
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h 'ip for your host' version
shell> mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
Note o uso de aspas para traz em vez de aspas para frente com o comando hostname; isto provoca a saída de hostname (que é, o nome de máquina atual) para ser substituído no comando mysqladmin.
Aqui estão algumas razões pela quais o erro Can't connect to local MySQL server pode ocorrer:
mysqld não está rodando;
Você está rodando em um sistema que usa MIT-pthreads. Se você estiver executando em um sistema que não possui threads nativas, o mysqld usa o pacote MIT-pthreads. Veja Secção 2.2.3, "Sistemas Operacionais suportados pelo MySQL". No entanto, nem todas as versões de MIT-pthreads suportam sockets Unix. Em um sistema sem suporte a sockets você sempre deve especificar o nome de máquina explicitamente ao conectar ao servidor. Tente usar este comando para verificar a conexão com o servidor:
shell> mysqladmin -h `hostname` version
Alguém removeu o socket Unix que o mysqld utiliza (por padrão /tmp/mysqld.sock). Você deve ter um trabalho cron que remove o socket MySQL (por exemplo, um trbalhoque remove arquivos antigos do diretório /tmp). Você sempre pode executar mysqladmin version e verificar que o socket que o mysqladmin está tentando usar realmente existe. A correção neste caso é alterar o trabalho cron para não remover mysqld.sock ou para colocar o socket em outro local. Veja Secção A.4.5, "Como Proteger ou AlterarHow to Protect or Change the MySQL Socket File /tmp/mysql.sock";
Você está usando Linux e uma thread finalizou (core dumped). Neste caso você deve matar as outras threads mysqld (por exemplo, com o script mysql_zap antes de você poder iniciar um novo servidor MySQL. Veja Secção A.4.1, "O Que Fazer Se o MySQL Continua Falhando";
Você pode não ter privilégios de leitura e escrita tanto no diretório que guarda o arquivo de socket quanto no próprio arquivo de socket. Neste caso você deve mudar o privilégio do diretório/arquivo ou reiniciar mysqld para que ele use um diretorio que você possa utilizar.
Se você obter a mensagem de erro Can't connect to MySQL server on alguma_maquina, você pode tentar o seguinte para descobrir qual é o problema:
Verifique se o servidor está funcionando fazendo telnet seu-servidor num-porta-tcp-ip e pressione Enter algumas vezes. Se houver um servidor MySQL em execução nesta porta você deve obter uma resposta que inclui o número da versão do servidor MySQL em execução. Se você obter um erro como telnet: Unable to connect to remote host: Connection refused, então não há nenhum servidor rodando na porta dada;
Tente conectar ao daemon mysqld na máquina local e verifique a porta TCP/IP que o mysqld está configurado para usar (variável port) com mysqladmin variables;
Verifique se o seu servidor mysqld não foi iniciado com a opção --skip-networking.