MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) que é usado como backend para inúmeras aplicações web e de servidor. Originalmente lançado em 1995, continua sendo uma escolha popular para desenvolvedores como servidor de banco de dados.
Antes de iniciar este guia, certifique-se de ter concluído as etapas descritas em nossa Configuração e proteção de uma instância de computação. Além disso, certifique-se de estar conectado ao seu sistema como usuário root.
Instalando o MySQL
Emita o seguinte comando para certificar-se de que seu repositório de pacotes está atualizado:
emerge --sync
O comando a seguir atualizará todos os pacotes e suas dependências no sistema. Se você não se sentir confortável em executar este comando, você pode ignorá-lo ou usar
emerge --update world
:emerge --update --deep world
Emita o seguinte comando para instalar o MySQL:
emerge dev-db/mysql
Uma vez concluído este processo, você também precisará instalar os bancos de dados que o MySQL usa. Emita o seguinte comando:
mysql_install_db
Agora você está pronto para iniciar o servidor MySQL pela primeira vez:
/etc/init.d/mysql start
Você precisará executar
mysql_secure_installation
para definir uma senha root e proteger sua instância MySQL. Emita o seguinte comando:mysql_secure_installation
Se você quiser que o MySQL seja executado quando o sistema for inicializado, emita o seguinte comando:
rc-update add mysql default
Configurando o MySQL
Por padrão, o MySQL se liga ao localhost. Se você deseja que o MySQL escute em um IP público, você pode alterar o
bind-address
valor em /etc/mysql/my.cnf
para refletir o endereço IP do seu Linode. Permitir acesso irrestrito ao MySQL em um IP público não é recomendado, e você pode querer considerar a implementação de regras de firewall para permitir apenas o tráfego de endereços IP específicos. As sugestões listadas acima podem não ser apropriadas para todos os ambientes, portanto, certifique-se de que seu aplicativo não exigirá configurações diferentes. Consulte os recursos adicionais na seção “Mais informações” deste guia para obter uma documentação mais detalhada sobre como configurar o MySQL.
Sempre que você modificar as configurações em
/etc/mysql/my.cnf
, você precisará reiniciar o servidor MySQL. Emita o seguinte comando:/etc/init.d/mysql restart
Usando MySQL
A maior parte da interação com o MySQL acontece através do
mysql
utilitário de linha de comando. Emita o seguinte comando para interagir com o MySQL:mysql -u root -p
Quando solicitado, digite a senha que você criou durante a
mysql_secure_installation
processo. Depois de ter feito isso, você será saudado com o prompt do MySQL:Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Se você esquecer sua senha de root do MySQL posteriormente, ela poderá ser redefinida com a seguinte sequência de comandos:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Depois de fazer login, digite os seguintes comandos no prompt do MySQL:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Para ver uma lista de comandos disponíveis (não Sintaxe SQL), emita
\h
no prompt do MySQL:List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
Vamos criar um banco de dados e atribuir um usuário a ele. Emita os seguintes comandos no prompt do MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Agora vamos logar novamente no cliente MySQL como
testuser
e crie uma tabela de amostra chamada "clientes". Emita os seguintes comandos:mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Isso cria uma tabela com um campo de ID do cliente do tipo INT para inteiro (incrementado automaticamente para novos registros, usado como chave primária), além de dois campos para armazenar o nome do cliente. Claro, você provavelmente gostaria de armazenar muito mais informações do que isso em um cliente, mas é um bom exemplo de um caso comum.
Ajustando o MySQL
O MySQL Tuner é uma ferramenta útil que se conecta a uma instância em execução do MySQL e fornece recomendações de configuração com base na carga de trabalho. Idealmente, a instância do MySQL deve estar operando por pelo menos 24 horas antes de executar o sintonizador. Quanto mais tempo a instância estiver em execução, melhor será o conselho que o MySQL Tuner fornecerá.
Para instalar o MySQL Tuner emita o seguinte comando:
emerge dev-db/mysqltuner
Para executar o MySQL Tuner basta digitar:
mysqltuner
Observe que esta ferramenta foi projetada para fornecer sugestões de configuração e é um excelente ponto de partida. Seria prudente realizar pesquisas adicionais para ajustar as configurações com base nos aplicativos que utilizam o MySQL.
Mais informações
Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.
- Manual de referência do MySQL 5.1
- Manual PHP MySQL
- Exemplos de Perl DBI para DBD::mysql
- Guia do usuário MySQLdb