Instalando e Configurando MySQL no Linux

Olá pessoal, hoje irei mostrar como instalar e configurar o MySQL no Linux. Mostrando também, alguns comandos básicos, criação de usuários, resolvendo erros comuns e outras coisas a mais.


$> Visão Geral:
O MySQL é um SGBD (Sistema Gerenciador de Banco de Dados) muito famoso por ser robusto e prático, para se ter um exemplo, a NASA, a Google e a Sony usam banco MySQL. Atualmente o MySQL pertence ao grupo Oracle.

$> Instalação do MySQL:
Primeiramente, entre no site oficial do MySQL e baixe os executáveis para seu sistema. Por exemplo, baixe os pacotes .rpm, e instale normalmente. Geralmente se baixa e instala 3 pacotes, o MySQL Community Server (mysql-community-server), MySQL Community Server Client (mysql-community-server-client) e MySQL Community Server Error Message (mysql-community-server-errormessage). Abaixo irei mostrar como instalar no Ubuntu, e no OpenSUSE.
Ubuntu:

> sudo aptitude install mysql-server

OpenSUSE:
Por padrão, o OpenSUSE já vem com o MySQL instalado, mas caso você faça uma instalação customizada e não tenha o MySQL instalado, basta dar o seguinte comando no terminal:

> sudo zypper in mysql-community-server
mysql-community-server-client
mysql-community-server-errormessage

$> Instalação de Complementos:
Para manipular os dados do MySQL, você deve ter instalado dois complementos importantíssimos, o Apache e o phpMyAdmin. Em cada distribuição, vem uma configuração diferente, e uma instalação diferente também. Abaixo os comandos de como instalar o Apache e o phpMyAdmin no Ubuntu e no OpenSUSE.
Ubuntu:

> sudo aptitude install apache2 libapache2-mod-php5
php5 php5-mysql phpmyadmin

OpenSUSE:

> sudo zypper in apache2 apache2-mod_php5
php5 php5-mysql phpMyAdmin

Agora pessoal, basta iniciar o serviço do Apache, pelo gerenciador de serviços:

Gerenciador de Serviços

Gerenciador de Serviços

Ou com o seguinte comando (como root):

> /etc/init.d/apache2 start

ou

> sudo service apache2 start

Para testar, escreva localhost/phpMyAdmin (localizado em /srv/www/htdocs/phpMyAdmin/), irá abrir a página abaixo:

Tela principal do phpMyAdmin

Tela principal do phpMyAdmin

$> Configuração do MySQL:
Agora basta dar o seguinte comando no terminal (como root):

 mysqld_safe &

Ou pressionar Alt+F2 e dar o comando kdesu mysqld_safe (se sua distro tiver o KDE instalado), ou gksudo mysqld_safe (se sua distro tiver o GNOME instalado).
Agora dê o seguinte comando no terminal e veja se irá iniciar normalmente, caso dê algum erro, olhe mais abaixo a resolução do erro.

> mysql

$> Erros Comuns:
Error 2002:
Obs.: Esteja com o serviço parado.
Esse erro é comum quando tentamos iniciar o MySQL, e ele não está com alguns parâmetros configurados, para resolver isso, dê os seguintes comandos (como root):

> mysql_install_db 
> chown -R mysql.mysql /var/lib/mysql 

Inicie o serviço como acima (mysqld_safe), e dê o comando:

> mysql

Error 1045:
Basta dar os seguintes comandos no terminal:

> mysql -u root -p 'mysql'
mysql> use mysql 
mysql> update user set password=PASSWORD("NEW-PASSWORD")
where User='root'; mysql> flush privileges; mysql> quit

Onde, NEW-PASSWORD é a nova senha de administrador.

$> Comandos básicos MySQL:
Manipulação de Usuários:
Root:
Para mudar a senha de root, basta dar o seguinte comando:

> mysqladmin -u root 'SENHA'

Onde SENHA é a senha que você irá colocar para Root.
Criando outros usuários:
Acesse o MySQL:

> mysql

Usuários com acesso total apenas em base local:

mysql> CREATE USER 'NOME'@'localhost'
IDENTIFIED BY 'SENHA'; mysql> GRANT ALL PRIVILEGES ON *.* TO
'NOME'@'localhost' WITH GRANT OPTION;

Usuários com acesso total em qualquer base de qualquer host:

mysql> CREATE USER 'NOME'@'%' IDENTIFIED BY 'SENHA';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'NOME'@'%'
WITH GRANT OPTION;

Comandos de Uso de Banco de Dados:
Abaixo irei mostrar como criar uma database, usá-la e exclui-lá.
-> Criando uma base de dados (BD):

CREATE DATABASE MEU_BANCO

-> Selecionando base de dados (para uso de funções DML):

USE MEU_BANCO;

-> Excluindo a base de dados:

DROP DATABASE MEU_BANCO

;

Comandos DML (Linguagem de Manipulação de Dados):
Os comandos DML são usados para selecionar, inserir, atualizar e apagar dados.
-> Seleção de Dados

SELECT 'CAMPO_1', 'CAMPO_2' FROM 'TABELA'
WHERE 'CONDICOES';

-> Inserção de Dados

INSERT INTO TABELA (CAMPO_1,CAMPO_2)
VALUES ('valorA','valorB');

-> Alteração de Dados

UPDATE TABELA SET CAMPO_1='valor1',
CAMPO2='valor2' WHERE 'CONDICOES';

-> Exclusão de Dados

DELETE FROM TABELA WHERE 'CONDICAO';

Comandos DDL (Linguagem de Definição de Dados):
Os comandos DDL permitem criar tabelas novas e elemetos associados, como exclusão.
-> Criação de Tabela

CREATE TABLE 'FUNCIONARIO'(
'CODIGO' INT,
'NOME' VARCHAR(50),
);

-> Exclusão de Tabela

DROP TABLE 'FUNCIONARIO';

-> Exibição de Tabela

DESC 'FUNCIONARIO';

Comandos DCL (Linguagem de Controle de Dados):
Os comandos DCL controlam as permissões (autorização) de manipulação dos dados e licença dos usuários, ou seja, com os comandos GRANT (permito) e REVOKE (retiro permissão), consigo manipular, quais usuários terão acesso a dados de uma base de dados.
-> Liberação total ao USUARIO em LOCALHOST:

GRANT ALL PRIVILEGES ON *.* TO 'USUARIO'@'LOCALHOST'
WITH GRANT OPTION;

-> Retirada de permissão no comando INSERT:

REVOKE INSERT ON *.* FROM 'USUARIO'@'LOCALHOST';

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

4 Responses

  1. cassio disse:

    No erro 1045 apareceu o seguinte:

    # mysql -u root -mysql
    mysql: unknown option ‘-m’

    • Dan_Atilio disse:

      Boa tarde Cassio,
      Me desculpe, quando fiz a postagem, esqueci de colocar o -p e a base entre apóstrofos. Já arrumei a postagem, e abaixo como ficaria o comando:
      # mysql -u root -p ‘mysql’
      Muito obrigado pela visita.
      Abraços.

  2. denis disse:

    Eu gosto de usar com mysql no linux uma ferramenta gratuita Valentina Estúdio http://www.valentina-db.com/en/valentina-studio-overview… no momento. Será que tudo que você precisa, e faz isso muito bem.

Deixe uma resposta para cassioCancelar resposta

Terminal de Informação