MySQL é um sistema de gerenciamento de banco de dados popular usado para aplicações web e de servidor. Este guia apresentará como instalar, configurar e gerenciar o MySQL em um Linode executando o Ubuntu 12.04 LTS (Precise Pangolin).
Observação Este guia foi escrito para um usuário não root. Comandos que requerem privilégios elevados são prefixados comsudo
. Se você não estiver familiarizado com osudo
comando, você pode verificar nosso guia de usuários e grupos.
Pré-requisitos
-
Se você ainda não o fez, crie uma conta Linode e Compute Instance. Veja nossos guias de Introdução ao Linode e Criação de uma instância de computação.
-
Siga nosso guia Configurando e protegendo uma instância de computação para atualizar seu sistema e configurar seu nome de host. Você também pode definir o fuso horário, criar uma conta de usuário limitada e proteger o acesso SSH.
Para verificar seu nome de host, execute:
hostname hostname -f
O primeiro comando deve mostrar seu nome de host curto e o segundo deve mostrar seu nome de domínio totalmente qualificado (FQDN) se você tiver um atribuído.
Instalar o MySQL
sudo apt-get install mysql-server
Durante o processo de instalação, você será solicitado a definir uma senha para o usuário root do MySQL, conforme mostrado abaixo. Escolha uma senha forte e guarde-a em um local seguro para referência futura.
O MySQL será vinculado ao localhost (127.0.0.1) por padrão. Consulte nosso guia de acesso remoto MySQL para obter informações sobre como se conectar aos seus bancos de dados usando um túnel SSH.
Observação Permitir acesso irrestrito ao MySQL em um IP público não é recomendado, mas você pode alterar o endereço em que ele escuta modificando obind-address
parâmetro em/etc/my.cnf
. Se você decidir vincular o MySQL ao seu IP público, você deve implementar regras de firewall que só permitem conexões de endereços IP específicos.
Reforçar o servidor MySQL
Execute o script mysql_secure_installation para resolver vários problemas de segurança em uma instalação padrão do MySQL.
sudo mysql_secure_installation
Você terá a opção de alterar a senha do root do MySQL, remover contas de usuários anônimos, desabilitar o login do banco de dados root fora do localhost e remover bancos de dados de teste. É recomendável que você responda sim a essas opções. Você pode ler mais sobre o script no Manual de Referência do MySQL.
Implantar MySQL
A ferramenta padrão para interagir com o MySQL é o
mysql
cliente, que instala com o mysql-server
pacote. Login raiz
-
Para fazer login no MySQL como usuário root:
mysql -u root -p
-
Quando solicitado, digite a senha de root que você atribuiu quando omysql_secure_installation
script foi executado.
Você será apresentado ao prompt do monitor MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
-
Para gerar uma lista de comandos para o prompt do MySQL, digite\h
. Você verá então:
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. For server side help, type 'help contents' mysql>
Criar um novo usuário e banco de dados MySQL
-
No exemplo abaixo,testdb
é o nome do banco de dados,testuser
é o usuário epassword
é a senha do usuário.
create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
Você pode encurtar esse processo criando o usuário enquanto atribuindo permissões de banco de dados:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Saia do MySQL.
exit
Criar uma tabela de amostra
-
Faça login novamente comotestuser
.
mysql -u testuser -p
-
Crie uma tabela de amostra chamadacustomers
. Isso cria uma tabela com um campo de ID do cliente do tipoINT
para inteiro (incrementado automaticamente para novos registros, usado como chave primária), além de dois campos para armazenar o nome do cliente.
use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Em seguida, saia do MySQL.
exit
Redefinir a senha raiz do MySQL
Se você esquecer sua senha de root do MySQL, ela poderá ser redefinida.
-
Pare a instância atual do servidor MySQL.
sudo service mysql stop
-
Use o dpkg para executar novamente o processo de configuração pelo qual o MySQL passa na primeira instalação. Você será novamente solicitado a definir uma senha de root.
sudo dpkg-reconfigure mysql-server-5.5
Agora você poderá fazer login novamente usando
mysql -u root -p
. Ajustar MySQL
MySQL Tuner é um script Perl 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. As recomendações do MySQL Tuner serão mais precisas quanto mais tempo a instância estiver em execução.
-
Instale o MySQL Tuner dos repositórios do Ubuntu.
sudo apt-get install mysqltuner
-
Para executá-lo:
mysqltuner
Você será solicitado a fornecer o nome e a senha do usuário root do MySQL. A saída mostrará duas áreas de interesse:Recomendações gerais e Variáveis a serem ajustadas.
MySQL Tuner é um excelente ponto de partida para otimizar um servidor MySQL, mas pesquisas adicionais são recomendadas para configurações adaptadas às aplicações que utilizam MySQL em seu Linode.
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