Instalando MySQL no Servidor Ubuntu com Repositorio PPA

O MySQL  é um programa, cuja aplicação é usada para o gerenciamento de banco de dados no modelo relacional utilizando a linguagem SQL, com recursos de consulta e conectividade. É multiplataforma e de código aberto. 

As principais ferramentas tipo IDE  – (Ambiente de Desenvolvimento Integrado) – que utilizam o MySQL são o phpMyAdmin, MySQL Workbench, DBBeaver, DataGrip, etc..

O MySQL integra-se com diversas linguagens através dos conectores para PHP, Java, Python, C, Ruby, etc.

Similares ao MySQL são MariaDb, PostgreSQL, SQLite, etc..

Neste post, os procedimentos de instalação e configuração serão válidos para a instalação Linux, no Debian ou nas distribuições derivadas deste,  em especial a distro Ubuntu.
A instalação e configuração do MySQL no sistema Windows tem procedimentos diferentes.

Etapas para Instalar MySQL

Preparação do Sistema com o Repositório do MySQL

Vou utilizar a distribuição Debian e derivados para instalar o arquivo do repositório do MySQL, e escolher a melhor opção.

1- Ir na página de repositórios MySQL. Verificar qual é a ultima versão e a plataforma de instalação. A página é: http://repo.mysql.com/

Baixar e instalar o arquivo mais recente de configuração MySQL para o Debian e derivados:   

     apt mysql-apt-config_0.8.22-1_all.deb

Observação:
Opcionalmente, pode-se baixar e renomear esse arquivo para o sistema Debian e derivados via wget

    $ wget http://repo.mysql.com/apt mysql-apt-config_0.8.22-1_all.deb  -O mysql-apt-config.deb

2- Instalar o arquivo de configuração:

     $ sudo dpkg – i mysql-apt-config.deb

3 – Escolher a opçao MySQL Server & Cluster.
      Observação:
      3.1- Se já estiver selecionada tecle em ok para as opções.

Arquivo de Configuração para instlar MySQL via PPA

      3.2- Caso mudar a seleção de configuração da instalação:
              $ sudo dpkg-reconfigure mysql-apt-config

Instalação do MySQL 

1- Baixar os pacotes MySQL, após a configuração do repositório apt  mostrado acima:

   $ sudo apt update

2- Instalando o MySQL

   $ sudo apt install mysql-server

 

3- Verificar a versão do MySQL instalada acima:

   $ mysqld -version

 

4- Definir senha do root do mysql:

     Temos os seguintes plugins autenticação:
        4.1- Plugin auth_socket
        4.2- Plugin caching_sha2_password
        4.3- Plugin mysql_native_password

     Vou utilizar o o plugin mysql_native_password. Vide MySQL Reference manual em https://dev.mysql.com/doc/refman/8.0/en/ 
Esse método de autenticação se adpta melhor com com os aplicativos nas versões do php e e phpmyadmin.

     mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native-password BY ‘password’ ; 
Adotei a password=12345 

5- Descarregar as alterações e alinhar as tabelas de previlégios:

     mysql > FLUSH PRIVILEGES;

6- Saindo do MySQL:

     mysql> exit

 

7- Acessando o Shell do MySQL : 

     $ mysql -u root -p 

          onde:
          -u para usuário como sendo root
          -p utilizando password

 
         
Observação:
          A senha do usuário root do MySQL tinha sido definida como 12345, acima (vide passo 4)

 

8- Adicionando usuário ao MySQL 

     Além do usuário root, vou adiconar o usuário João, com a senha 01234, para trabalhar com o MySQL.
    O usuário  João terá todas as permissões ao banco de dados,  similares às do usuário root. 

     Observação:
     Os comandos mysql terminam com ponto e virgula ‘;’.  

     $ mysql -u -root -p

     mysql> CREATE USER ‘joao’@’%’ IDENTIFIED WITH mysql_native_password BY ‘01234’; 

    mysq> GRANT ALL PRIVILEGES ON  *.* TO ‘joao’@’%’ WITH GRANT OPTION;

    mysql> exit;

 

9- Iniciar o MySQL  com o boot da máquina:

   $ sudo systemctl enable mysql.service

 

10- Reiniciar o serviço do MySQL, para consolidar alterações:

   $ sudo systemctl restart mysql.service

 

11- Verificando o status do MySQL instalado:

    $ sudo systemctl status mysql.service

 

12- Testando o uso do MySQL

     $ mysql -u joao -p

     mysql> CREATE DATABASE teste_database;

     mysql> SHOW DATABASES;