Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Instalando e configurando o MySQL no Ubuntu 20.04


Os usuários do Ubuntu podem escolher entre dois Sistemas de Gerenciamento de Banco de Dados Relacionais confiáveis (RDBMS),MySQL eMariaDB . O MySQL tem uma vantagem de longa data em popularidade, mas tem aumentado o interesse no MariaDB devido às suas vantagens de desempenho e recursos adicionais. Este guia compara os dois sistemas de banco de dados e fornece instruções sobre como instalar e usar o MySQL no Ubuntu 20.04.

O que é MySQL?


O MySQL RDBMS é um dos aplicativos de código aberto mais populares. Faz parte da Pilha LAMP , que é a base de muitos sistemas Ubuntu. Essa pilha consiste no Linux, no servidor web Apache, no MySQL RDBMS e na linguagem de programação PHP. Esses aplicativos trabalham juntos para dar suporte a aplicativos da Web, desenvolvimento de software e atividades especializadas, como ciência de dados. O principal uso do MySQL é em configurações de servidor único de pequeno e médio porte.

As consultas do MySQL são escritas na Linguagem de consulta estruturada (SQL). Como um banco de dados relacional, ele armazena e organiza os dados em tabelas. As tabelas estruturam os dados reais dentro das tabelas como uma série de linhas, com cada linha consistindo em uma ou mais colunas. Cada linha representa uma entrada diferente na tabela, enquanto cada coluna contém um campo de dados dentro da entrada. Os campos de dados nessas tabelas podem ser relacionados entre si, e essas relações ajudam a estruturar e organizar o banco de dados. As instruções SQL especializadas permitem que os clientes adicionem, excluam, modifiquem e recuperem dados.

MySQL é conhecido por sua estabilidade e confiabilidade e é considerado simples e fácil de usar. Está disponível como software de código aberto gratuito sob a GNU General Public License. O MySQL está prontamente disponível para todas as distribuições Linux, bem como para outros sistemas operacionais. Agora é propriedade da Oracle Corporation. A Oracle também oferece o CommercialMySQL Enterprise Edition como um produto de ponta.

MySQL vs. MariaDB


As duas principais alternativas de banco de dados de código aberto, MySQL e MariaDB, são muito semelhantes. Ambos são produtos RDBMS e ambos usam SQL. Ambos os sistemas de banco de dados têm versões gratuitas e parecem e agem da mesma maneira. Como o MariaDB originalmente se ramificou do MySQL, isso não é surpreendente. Desde então, o MariaDB passou por um desenvolvimento adicional e apresenta muitas novas melhorias em segurança e desempenho. Com o MySQL, no entanto, muitos recursos avançados são encontrados apenas na Enterprise Edition. Aqui está um resumo das semelhanças e diferenças entre os dois produtos:
  • O MariaDB suporta mais conexões do que o MySQL.
  • Ambos os bancos de dados podem funcionar com vários sistemas de armazenamento, embora o MariaDB ofereça mais opções.
  • O MariaDB pode replicar dados mais rapidamente que o MySQL e tem melhor desempenho geral. O MySQL lida com grandes transações com mais eficiência, mas o MariaDB funciona melhor em situações de escala.
  • O MySQL suporta alguns recursos que o MariaDB não possui, como colunas dinâmicas. Cada banco de dados tem alguns recursos avançados e melhorias que o outro não tem.
  • O MySQL é mais antigo, mais bem estabelecido, mais popular e tem mais suporte da comunidade. O MySQL oferece planos de suporte pagos mais abrangentes.
  • MariaDB e MySQL são totalmente compatíveis.
  • Ambos os produtos são de código aberto, mas o modelo de licenciamento do MySQL é mais restritivo.

Para resumir, ambos os sistemas são mais do que adequados para a maioria dos usuários. O MariaDB apresenta melhor desempenho, enquanto o MySQL está mais bem estabelecido e com melhor suporte.

Antes de começar


  1. 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.

  2. Siga nosso guia Configurando e protegendo uma instância de computação para atualizar seu sistema. Você também pode definir o fuso horário, configurar seu nome de host, criar uma conta de usuário limitada e proteger o acesso SSH.
Observação As etapas neste guia foram escritas para usuários não root. Comandos que requerem privilégios elevados são prefixados com sudo . Se você não estiver familiarizado com o sudo comando, consulte o guia de usuários e grupos do Linux.

Como instalar o servidor MySQL


O MySQL está disponível como parte dos pacotes padrão do Ubuntu, portanto, não é necessário editar a lista de fontes. Ele pode ser facilmente instalado usando apt , mas é importante proteger o aplicativo e editar o firewall posteriormente. Estas instruções são voltadas para usuários do Ubuntu, mas geralmente são aplicáveis ​​para aqueles que desejam instalar o MySQL em outra distribuição Linux.

Baixar MySQL


Para instalar o servidor MySQL no Ubuntu, siga os passos abaixo:

  1. Instale o aplicativo do servidor MySQL.
    sudo apt install mysql-server
    

  2. Confirme se o servidor MySQL está rodando usando o systemctl comando. Ele deve exibir um status de active .
    sudo systemctl status mysql
    
    mysql.service - MySQL Community Server
        Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>
        Active: active (running) since Thu 2021-09-09 12:24:29 UTC; 1h 44min ago

Configurar o servidor MySQL no Linux


A mysql_secure_installation utilitário é a maneira mais fácil de configurar o aplicativo. Para usar o script de configuração, siga estas etapas:

  1. Inicie a mysql_secure_installation utilitário para definir a senha de root e configurar outras opções padrão.
    sudo mysql_secure_installation
    

  2. O aplicativo pergunta se deve ativar o VALIDATE PASSWORD COMPONENT componente. Se você responder y , ele pergunta se deve definir a força da senha para LOW , MEDIUM , ou HIGH .
    VALIDATE PASSWORD COMPONENT can be used to test passwords
    and improve security. It checks the strength of password
    and allows the users to set only those passwords which are
    secure enough. Would you like to setup VALIDATE PASSWORD component?

  3. No próximo prompt, o utilitário solicita uma senha para a conta root. Defina a senha e, em seguida, digite-a novamente.
    Please set the password for root here.
    
    New password:
    
    Re-enter new password:

  4. As perguntas a seguir perguntam se os usuários anônimos devem ser removidos para permitir que o root conta para se conectar remotamente e remover o test base de dados. Digite y ou n em cada prompt de acordo com suas preferências. O test banco de dados é útil durante a validação inicial, mas por motivos de segurança, é melhor não permitir o root conta de fazer login remotamente.
    By default, a MySQL installation has an anonymous user,
    allowing anyone to log into MySQL without having to have
    a user account created for them. This is intended only for
    testing, and to make the installation go a bit smoother.
    You should remove them before moving into a production
    environment.
    
    Remove anonymous users? (Press y|Y for Yes, any other key for No) :
    
    Normally, root should only be allowed to connect from
    'localhost'. This ensures that someone cannot guess at
    the root password from the network.
    
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
    
    By default, MySQL comes with a database named 'test' that
    anyone can access. This is also intended only for testing,
    and should be removed before moving into a production
    environment.
    
    Remove test database and access to it? (Press y|Y for Yes, any other key for No

  5. Quando solicitado, recarregue o privilege tabelas para atualizar o banco de dados.
    Reloading the privilege tables will ensure that all changes
    made so far will take effect immediately.
    
    Reload privilege tables now? (Press y|Y for Yes, any other key for No)
    y
    
    Success.
    
    All done!

  6. (Opcional ) Para acessar o MySQL remotamente, certifique-se de que o tráfego do MySQL seja permitido através do ufw firewall. Adicione a seguinte regra para abrir a porta 3306 no firewall. Esta regra não deve ser adicionada se o acesso remoto não for necessário.
    ufw allow mysql
    
    Status: active
    
    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    3306/tcp                   ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    3306/tcp (v6)              ALLOW       Anywhere (v6)

Faça login no MySQL como usuário root


Embora a root usuário tenha acesso total ao banco de dados MySQL, seu uso deve ser reservado para fins administrativos. Isso reduz a chance de sobrescrever acidentalmente seções críticas do banco de dados. Mesmo em uma configuração de usuário único, uma conta de usuário separada deve ser criada para a maioria das atividades do MySQL.

Para acessar o servidor MySQL como root usuário e criar uma nova conta de usuário, siga estas etapas:

  1. Use o sudo mysql comando para acessar o banco de dados. O MySQL autentica o usuário root com base em suas credenciais de root ao efetuar login localmente, portanto, nenhuma senha é necessária. Como alternativa, acesse a conta root usando sudo mysql -u root -p , junto com a root senha.
    sudo mysql
    

  2. O MySQL exibe o número da versão e algumas informações sobre a instalação e, em seguida, apresenta o prompt do MySQL.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 15
    Server version: 8.0.26-0ubuntu0.20.04.2 (Ubuntu)
    ...
    mysql>

  3. Para confirmar que o MySQL está funcionando corretamente, use o SHOW DATABASES comando para exibir todos os bancos de dados.
    SHOW DATABASES;
    
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.01 sec)

  4. Crie um novo usuário usando o CREATE USER comando. Digite o nome de usuário no formato 'username'@'IP_Address' , onde IP_Address é o endereço IP do usuário. Se o usuário estiver acessando o MySQL a partir do Linode local, substitua localhost no lugar do endereço IP. No comando abaixo, substitua mysqluser e password com o nome de usuário e a senha reais.
    Observação O MySQL oferece vários mecanismos de autenticação diferentes. A caching_sha2_password O método é recomendado para usuários que desejam fazer login usando uma senha e é usado aqui. No entanto, alguns aplicativos mais antigos podem não conseguir autenticar adequadamente dessa maneira. Nesse caso, mysql_native_password deve ser usado em seu lugar. A replicação da réplica de origem do MySQL pode exigir a sha256_password método.
    CREATE USER 'mysqluser'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
    

  5. Conceda acesso ao novo usuário usando o GRANT PRIVILEGE comando, usando o formato GRANT list of privileges ON table TO 'username'@'IP_Address'; . Alguns dos privilégios mais comuns incluem CREATE , ALTER , DROP , INSERT , UPDATE , DELETE e SELECT . Para aplicar esses privilégios a todos os bancos de dados, use a variável curinga *.* . O comando a seguir concede privilégios não administrativos comuns em todos os bancos de dados para mysqluser .
    GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD ON *.* TO 'mysqluser'@'localhost' WITH GRANT OPTION;
    

  6. Para sair do prompt do MySQL, digite exit .
    exit
    

Como usar o MySQL


O MySQL usa a sintaxe SQL padrão para todos os seus comandos. As etapas nesta seção demonstram como executar tarefas básicas no MySQL, como criar bancos de dados, tabelas e adicionar dados. Para obter informações completas sobre como usar o MySQL, consulte o Manual de Referência do MySQL. Para uma introdução breve, mas completa, experimente o tutorial do MySQL.

Criar um banco de dados


  1. Para criar um banco de dados, faça login no MySQL usando uma conta com CREATE privilégios. Substitua mysqlusername com o nome de usuário que você criou.
    mysql -u mysqlusername -p
    

  2. Crie um novo banco de dados usando o CREATE DATABASE comando. Substitua newdatabasename com o nome desejado para seu banco de dados.
    CREATE DATABASE newdatabasename;
    
    Query OK, 1 row affected (0.00 sec)

  3. Para confirmar que o novo banco de dados foi criado corretamente, use SHOW DATABASES .
    SHOW DATABASES;
    
    +--------------------+
    | Database           |
    +--------------------+
    ...
    | newdatabasename   |
    ...
    +--------------------+
    5 rows in set (0.00 sec)

  4. Indique o banco de dados com o qual você deseja trabalhar usando o USE comando. Substitua newdatabasename com o nome do banco de dados que você acabou de criar.
    USE newdatabasename;
    
    Database changed
    Observação Você também pode usar o USE comando quando você tem mais de um banco de dados e deseja alternar entre eles.

  5. Para descobrir o nome do banco de dados atual, use o SELECT DATABASE comando. A saída exibe o nome do banco de dados.
    SELECT DATABASE();
    
    +------------------+
    | DATABASE()       |
    +------------------+
    | newdatabasename |
    +------------------+

Criar uma tabela


Neste ponto, o banco de dados, newdatabasename não possui nenhuma tabela, portanto, ainda não é possível armazenar nenhum dado nela. Para definir uma tabela, use o CREATE TABLE comando. Junto com o nome da tabela, este comando requer o nome e o tipo de dados de cada campo. O tipo de dados caracteriza os dados armazenados no campo. Por exemplo, o tipo de dados pode ser uma string de comprimento variável, conhecida como VARCHAR . Para obter uma lista completa de tipos de dados, consulte a documentação do MySQL. Alguns dos tipos de dados mais comuns são os seguintes.
  • INT: Isso pode conter um valor entre -2147483648 e 2147483647 . Se especificado como UNSIGNED , ele pode armazenar valores entre 0 e 4294967295 .
  • PEQUENO: Contém um valor inteiro ainda menor entre -32768 e 32767 .
  • FLUTUAÇÃO: Este tipo pode armazenar um número de ponto flutuante.
  • DATA: Armazena uma data em YYYY-MM-DD formato.
  • DATETIME: Armazena uma combinação de data e hora em YYYY-MM-DD HH:MM:SS formato. O mesmo tempo pode ser armazenado sem traços e dois pontos no TIMESTAMP formato.
  • VARCHAR(N): Esta é uma string de comprimento variável entre 1 e N caracteres de comprimento, com um comprimento máximo de 255 personagens.
  • TEXTO: Este tipo de dados comporta até 65535 personagens. Ele pode conter texto, imagens ou dados binários.
  • CHAR(N): Este tipo representa um campo de texto de comprimento fixo de comprimento N . Por exemplo, para armazenar códigos de estado de dois caracteres, use um tipo de dados de CHAR(2) .

Antes de criar qualquer tabela, é importante decidir sobre um esquema para o banco de dados. O esquema descreve o que cada tabela representa, quais dados são armazenados em cada tabela e como as tabelas se relacionam. Para criar uma tabela, siga estas etapas:

  1. Enquanto estiver conectado ao MySQL, alterne para o banco de dados onde deseja adicionar a tabela.
    use newdatabasename;
    

  2. Use o CREATE TABLE comando para gerar uma nova tabela. Use o formato CREATE TABLE table_name (field_1 datatype, field_n datatype); .
    CREATE TABLE newtablename (column1 VARCHAR(20), column2 CHAR(1), column3 DATE, column4 SMALLINT UNSIGNED);
    
    Query OK, 0 rows affected (0.02 sec)

  3. Para confirmar que a tabela já existe, use o SHOW TABLES comando.
    SHOW TABLES;
    
    +----------------------------+
    | Tables_in_newdatabasename |
    +----------------------------+
    | newtablename              |
    +----------------------------+
    1 row in set (0.00 sec)

  4. Para revisar a estrutura da tabela e verificar a lista de campos, use o DESCRIBE comando.
    DESCRIBE newtablename;
    
    +---------+-------------------+------+-----+---------+-------+
    | Field   | Type              | Null | Key | Default | Extra |
    +---------+-------------------+------+-----+---------+-------+
    | column1 | varchar(20)       | YES  |     | NULL    |       |
    | column2 | char(1)           | YES  |     | NULL    |       |
    | column3 | date              | YES  |     | NULL    |       |
    | column4 | smallint unsigned | YES  |     | NULL    |       |
    +---------+-------------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)

  5. Se uma tabela não for mais necessária, exclua-a usando o DROP TABLE comando.
    Cuidado Quando uma tabela é descartada, todos os dados dentro da tabela são perdidos e não podem ser recuperados.
    DROP TABLE newtablename;
    

Adicionar e recuperar dados


A principal maneira de inserir uma nova linha de dados em uma tabela é com o INSERT comando.

  1. Para adicionar uma linha, use o INSERT comando. Especifique o nome da tabela, a palavra-chave VALUES , e uma lista de valores entre colchetes e separados por vírgulas no formato INSERT INTO tablename VALUES ('value_1', ... 'value_n'); . Os valores da coluna devem ter a mesma sequência que a definição da tabela, com os valores de string e data entre aspas. Por exemplo, para adicionar dados a newtablename , especifique valores para column1 , column2 , column3 e column4 , naquela ordem.
    INSERT INTO newtablename VALUES ('value1','a','2021-09-10',123);
    
    Query OK, 1 row affected (0.01 sec)

  2. Para recuperar dados, use o SELECT comando, juntamente com algumas restrições informando ao MySQL quais linhas retornar. Todo o conteúdo da tabela pode ser retornado ou apenas um subconjunto. Para selecionar todas as linhas em uma tabela, use o SELECT * comando, mas não adicione nenhum qualificador.
    SELECT * FROM newtablename;
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value1  | a       | 2021-09-10 |     123 |
    | value2  | b       | 2021-09-08 |     123 |
    +---------+---------+------------+---------+
    2 rows in set (0.00 sec)

  3. Também é possível selecionar apenas linhas que atendam a critérios específicos, por exemplo, onde uma coluna é definida para um determinado valor. Use o WHERE palavra-chave como um qualificador, seguido pelos critérios de correspondência como uma restrição. Neste exemplo, apenas as linhas em que column2 está definido como b Estão exibidas.
    SELECT * FROM newtablename WHERE column2 = 'b';
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value2  | b       | 2021-09-08 |     123 |
    +---------+---------+------------+---------+
    1 row in set (0.00 sec)

  4. Para tabelas com muitas colunas, geralmente é mais fácil limitar as informações exibidas. Para selecionar apenas determinadas colunas para cada linha, especifique os nomes das colunas em vez do * símbolo.
    SELECT column1, column4 FROM newtablename;
    
    +---------+---------+
    | column1 | column4 |
    +---------+---------+
    | value1  |     123 |
    | value2  |     123 |
    +---------+---------+
    2 rows in set (0.00 sec)

  5. Para modificar uma linha em uma tabela, use o UPDATE comando. O SET palavra-chave indica a coluna a ser atualizada e o novo valor. Se necessário, o WHERE palavra-chave fornece um método de restringir a operação para aplicar apenas a determinadas linhas. No exemplo a seguir, o valor de column4 só é alterado para 155 if column2 é igual a b .
    UPDATE newtablename SET column4 = 155 WHERE column2 = 'b';
    
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

  6. O SELECT * pode ser usada para confirmar a atualização.
    SELECT * FROM newtablename;
    
    +---------+---------+------------+---------+
    | column1 | column2 | column3    | column4 |
    +---------+---------+------------+---------+
    | value1  | a       | 2021-09-10 |     123 |
    | value2  | b       | 2021-09-08 |     155 |
    +---------+---------+------------+---------+
    2 rows in set (0.00 sec)

Conclusão:MySQL no Ubuntu 20.04


MySQL é uma boa escolha para aplicações web de pequeno e médio porte. Ele usa a linguagem de programação SQL padrão do setor, que é bastante simples de usar. O MySQL é muito estável e robusto e tem muitos recursos junto com um bom suporte. A principal alternativa ao MySQL é o MariaDB. Apresenta melhor desempenho e recursos mais recentes, mas não está tão bem estabelecido.

Você pode facilmente baixar e instalar o servidor MySQL no Ubuntu usando o apt pacotes e a mysql_secure_installation Utilitário. Mesmo se você for a única pessoa que está usando o MySQL, é melhor criar um novo usuário do MySQL com privilégios mais limitados.

Para usar o MySQL, primeiro determine o esquema do banco de dados e defina o conteúdo da tabela. Em seguida, crie um banco de dados e as tabelas de dados. Os dados podem ser adicionados usando o INSERT comando, modificado usando o UPDATE comando e recuperado usando o comando SELECT comando. Claro, o MySQL pode realizar até mesmo operações altamente complexas. Trabalhe no tutorial do MySQL para começar e consulte a documentação do MySQL para obter uma visão geral completa.

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.
  • Site MariaDB
  • Site MySQL