MySQL é um sistema de gerenciamento de banco de dados popular usado para aplicações web e de servidor. Este guia irá apresentar como instalar, configurar e gerenciar o MySQL em um Linode rodando Debian 8 (Jessie).
Grandes bancos de dados MySQL podem exigir uma quantidade considerável de memória. Por esta razão, recomendamos o uso de um High Memory Linode para tais configurações.
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.
Antes de começar
-
Certifique-se de ter seguido os guias de Introdução e Protegendo seu Servidor e que o nome de host do Linode está definido.
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).
-
Atualize seu sistema:
sudo apt-get update sudo apt-get upgrade
Instalar o MySQL
sudo apt-get install mysql-server
Observação O pacote mysql-server pode não estar disponível nas últimas versões do Debian neste caso tente sudo apt-get install default-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 a seus bancos de dados usando 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 a
mysql_secure_installation
script 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 de root do MySQL, remover contas de usuários anônimos, desabilitar logins de 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.
Usando MySQL
A ferramenta padrão para interagir com o MySQL é o
mysql
cliente que instala com o mysql-server
pacote. O cliente MySQL é usado através de um terminal. Login raiz
-
Para fazer login no MySQL como usuário root:
mysql -u root -p
-
Quando solicitado, digite a senha de root.
Você será apresentado a um cabeçalho de boas-vindas e o prompt do MySQL, conforme mostrado abaixo:
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';
-
Em seguida, 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 systemctl stop mysql.service
-
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
dpkg
irá reiniciar o MySQL automaticamente e 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. Quanto mais tempo a instância estiver em execução, melhor o conselho que o MySQL Tuner dará.
-
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.
O MySQL Tuner é um excelente ponto de partida para otimizar um servidor MySQL, mas seria prudente realizar pesquisas adicionais 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.5
- Manual PHP MySQL
- Exemplos de Perl DBI para DBD::mysql
- Guia do usuário MySQLdb
- Tutorial do Sintonizador MySQL