performancedb

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL.
Nesse momento vamos ver como fazer a instalação a partir dos arquivos binários, e já adianto que será um post um pouco longo, pois temos que configurar tudo manualmente.
Vamos instalar a versão mais recente do MySQL 5.7.

A primeira coisa a ser feita é acessar o site do MySQL e fazer o download do arquivo.

Recomendo executar um yum update antes de iniciar, pois caso tenha alguma lib desatualizada, nesse momento ela será atualizada.

A primeira coisa é fazer o download dos arquivos que vamos precisar.

https://dev.mysql.com/downloads/mysql/

Ao chegar nessa tela verá que a versão que está selecionada para download são os pacotes da versão 8(MySQL Community Server 8.X.XX), mas queremos a versão 5.7, então nessa mesma página, procure por isso “Looking for previous GA versions?” e logo abaixo terá um link “MySQL Community Server 5.7″, clique nele e será direcionado para a página de download da versão 5.7.
Depois selecione o sistema operacional que deseja, como estamos utilizando o CentOS, vamos selecionar a opção “Red Hat Enterprise Linux / Oracle Linux” e depois emos que selecionar a versão do Sistema Operacional em “Select OS Version:”. No meu caso estou usando a versão 7 x86 64 Bit.

mysql_select_version_so

Muita atenção para baixar os pacotes para a versão correta, por exemplo, se o teu SO for 64 Bit, baixe os pacotes para 64 Bit e não para 32 Bit.

Vou fazer o download do arquvo Compressed TAR Archive(mysql-5.7.23-el7-x86_64.tar.gz).

Você pode fazer o download no seu computador e transferir para o servidor ou pode fazer o download direto no servidor, usando o wget, por exemplo.
Eu vou usar o wget, e para isso fiz esses passos:

  1. Clique no botão download do “Compressed TAR Archive”.
  2. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-el7-x86_64.tar.gz”.
  3. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23-el7-x86_64.tar.gz”.

Pronto já temos o arquivo que precisamos, ele é um pacote bem grande, mas nele tem tudo que precisamos.
Vamos fazer a instalação.

A primeira coisa a fazer é descompactar o arquivo.

tar -zxvf mysql-5.7.23-el7-x86_64.tar.gz

Depois vamos mover todos os arquivos descompactados para a pasta /opt/

mv mysql-5.7.23-el7-x86_64 /opt/

E agora vamos criar um link simbólico da pasta /opt/mysql-5.7.23-el7-x86_64 em /usr/local/mysql

ln -s /opt/mysql-5.7.23-el7-x86_64 /usr/local/mysql

post_mysql_install_link

Uma coisa que acho legal desse formato é que é bem simples fazer o upgrade da versão do MySQL, basicamente é mudar o link simbólico, mas esse é assunto para outro post.

Todos os binários do MySQL estão em /usr/local/mysql/bin, vamos conferir.

[root@PerformanceDB ~]# cd /usr/local/mysql/bin
[root@PerformanceDB bin]# ls -lah
total 1,2G
drwxr-xr-x. 2 root root 4,0K Ago 20 17:51 .
drwxr-xr-x. 9 root root 129 Ago 20 17:51 ..
-rwxr-xr-x. 1 7161 31415 8,7M Jun 8 10:24 innochecksum
-rwxr-xr-x. 1 7161 31415 314K Jun 8 10:24 lz4_decompress
-rwxr-xr-x. 1 7161 31415 7,9M Jun 8 10:24 myisamchk
-rwxr-xr-x. 1 7161 31415 7,5M Jun 8 10:24 myisam_ftdump
-rwxr-xr-x. 1 7161 31415 7,2M Jun 8 10:24 myisamlog
-rwxr-xr-x. 1 7161 31415 7,6M Jun 8 10:24 myisampack
-rwxr-xr-x. 1 7161 31415 5,3M Jun 8 10:24 my_print_defaults
-rwxr-xr-x. 1 7161 31415 11M Jun 8 10:25 mysql
-rwxr-xr-x. 1 7161 31415 9,2M Jun 8 10:25 mysqladmin
-rwxr-xr-x. 1 7161 31415 11M Jun 8 10:25 mysqlbinlog
-rwxr-xr-x. 1 7161 31415 9,5M Jun 8 10:25 mysqlcheck
-rwxr-xr-x. 1 7161 31415 195M Jun 8 10:27 mysql_client_test_embedded
-rwxr-xr-x. 1 7161 31415 4,8K Jun 8 10:24 mysql_config
-rwxr-xr-x. 1 7161 31415 8,1M Jun 8 10:25 mysql_config_editor
-rwxr-xr-x. 1 7161 31415 237M Jun 8 10:28 mysqld
-rwxr-xr-x. 1 7161 31415 160M Jun 8 10:23 mysqld-debug
-rwxr-xr-x. 1 7161 31415 27K Jun 8 10:24 mysqld_multi
-rwxr-xr-x. 1 7161 31415 28K Jun 8 10:24 mysqld_safe
-rwxr-xr-x. 1 7161 31415 9,5M Jun 8 10:25 mysqldump
-rwxr-xr-x. 1 7161 31415 7,3K Jun 8 10:24 mysqldumpslow
-rwxr-xr-x. 1 7161 31415 194M Jun 8 10:27 mysql_embedded
-rwxr-xr-x. 1 7161 31415 9,2M Jun 8 10:25 mysqlimport
-rwxr-xr-x. 1 7161 31415 11M Jun 8 10:25 mysql_install_db
-rwxr-xr-x. 1 7161 31415 5,4M Jun 8 10:25 mysql_plugin
-rwxr-xr-x. 1 7161 31415 19M Jun 8 10:26 mysqlpump
-rwxr-xr-x. 1 7161 31415 9,1M Jun 8 10:25 mysql_secure_installation
-rwxr-xr-x. 1 7161 31415 9,1M Jun 8 10:25 mysqlshow
-rwxr-xr-x. 1 7161 31415 9,2M Jun 8 10:25 mysqlslap
-rwxr-xr-x. 1 7161 31415 5,7M Jun 8 10:24 mysql_ssl_rsa_setup
-rwxr-xr-x. 1 7161 31415 194M Jun 8 10:27 mysqltest_embedded
-rwxr-xr-x. 1 7161 31415 4,9M Jun 8 10:24 mysql_tzinfo_to_sql
-rwxr-xr-x. 1 7161 31415 13M Jun 8 10:25 mysql_upgrade
-rwxr-xr-x. 1 7161 31415 24M Jun 8 10:25 mysqlxtest
-rwxr-xr-x. 1 7161 31415 5,4M Jun 8 10:24 perror
-rwxr-xr-x. 1 7161 31415 5,1M Jun 8 10:24 replace
-rwxr-xr-x. 1 7161 31415 5,3M Jun 8 10:24 resolveip
-rwxr-xr-x. 1 7161 31415 5,4M Jun 8 10:24 resolve_stack_dump
-rwxr-xr-x. 1 7161 31415 122K Jun 8 10:24 zlib_decompress

Para facilitar o acesso aos binários, vamos incluir no path do linux esse diretório, isso será muito útil para acessar o MySQL cliente ou mysqldump, por exemplo.
Os usuários no linux tem um arquivo chamado .bashrc no diretório /home/ ou no casso do root em /root/ e é nesse arquivo que temos que adicionar essa linha “export PATH=$PATH:/usr/local/mysql/bin”

vim ~/.bashrc
export PATH=$PATH:/usr/local/mysql/bin

post_mysql_install_bashrc

Depois execute esse comando para que a sua sessão no linux já possa acessar os binários do MySQL.

source ~/.bashrc

Para testar digite mysql e enter.

[root@PerformanceDB bin]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Agora aqui um ponto importante, as versão mais recentes do CentOS já vem com alguns pacotes do MariaDB instalado, isso acontece em função de acordos comerciais, vamos verificar e remover esses pacotes caso estejam instalados, assim como o arquivo /etc/my.cnf.

[root@PerformanceDB bin]# rpm -qa |grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@PerformanceDB bin]# yum remove mariadb-libs-5.5.56-2.el7.x86_64
Plugins carregados: fastestmirror
Resolvendo dependências
--> Executando verificação da transação
---> O pacote mariadb-libs.x86_64 1:5.5.56-2.el7 será removido
--> Processando dependência: libmysqlclient.so.18()(64bit) para o pacote: 2:postfix-2.10.1-6.el7.x86_64
--> Processando dependência: libmysqlclient.so.18(libmysqlclient_18)(64bit) para o pacote: 2:postfix-2.10.1-6.el7.x86_64
--> Executando verificação da transação
---> O pacote postfix.x86_64 2:2.10.1-6.el7 será removido
--> Resolução de dependências finalizada

Dependências resolvidas

=========================================================================================================================================================
 Package Arq. Versão Repo Tam.
=========================================================================================================================================================
Removendo:
 mariadb-libs x86_64 1:5.5.56-2.el7 installed 4.4 M
Removendo para as dependências:
 postfix x86_64 2:2.10.1-6.el7 installed 12 M

Resumo da transação
=========================================================================================================================================================
Remove 1 Package (+1 Dependent package)

Tamanho depois de instalado: 17 M
Correto? [s/N]:s
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Apagando : 2:postfix-2.10.1-6.el7.x86_64 1/2 
 Apagando : 1:mariadb-libs-5.5.56-2.el7.x86_64 2/2 
 Verifying : 1:mariadb-libs-5.5.56-2.el7.x86_64 1/2 
 Verifying : 2:postfix-2.10.1-6.el7.x86_64 2/2 

Removido(s):
 mariadb-libs.x86_64 1:5.5.56-2.el7 

Dependência(s) removida(s):
 postfix.x86_64 2:2.10.1-6.el7 

Concluído!

No meu caso o pacote mariadb-libs-5.5.56-2.el7.x86_64 já estava instalado e eu removi, quando removi esse pacote ele já removeu o arquivo my.cmf que tinha.

O próximo passo é criar um arquivo my.cnf básico apenas para subir o serviço do MySQL. Ele bem semelhante ao que criado quando é instalado através do repositório.
Todos os diretórios que estou usando como exemplo, são os recomendados pela Oracle.

vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Veja que apenas está definido o datadir, onde será criado o sockect, qual usuário o MySQL irá utilizar para acessar os arquivos no sistema operacional, local do log se erros e local do pid.

Como vimos, no my.cnf está configurado o usuário mysql, mas esse usuário não existe no Linux, então vamos criar.

adduser -r mysql

E agora vamos criar o diretório que será utilizado como datadir. Vamos criar informar que o dono desse diretório é o usuário mysql.

[root@PerformanceDB /]# mkdir /var/lib/mysql
[root@PerformanceDB /]# ls -lah /var/lib/mysql
total 4,0K
drwxr-xr-x. 2 root root 6 Ago 20 18:34 .
[root@PerformanceDB /]# chown mysql:mysql /var/lib/mysql
[root@PerformanceDB /]# ls -lah /var/lib/mysql
total 4,0K
drwxr-xr-x. 2 mysql mysql 6 Ago 20 18:34 .

E por último criar o diretório que irá ficar o pid.

[root@PerformanceDB /]# mkdir /var/run/mysqld
[root@PerformanceDB /]# chown mysql:mysql /var/run/mysqld/
[root@PerformanceDB /]# ls -lah /var/run/mysqld/
total 0
drwxr-xr-x. 2 mysql mysql 40 Ago 20 18:42 .

Agora que já temos os binários, o path no sistema operacional, o my.cnf e os diretórios criados e com as permissões corretas, vamos iniciar o MySQL. Isso mesmo iniciar, como estamos utilizando diretamente os binários, não tem instalação para ser feita, apenas iniciar.
Na primeira vez que for iniciar o MySQL, é necessário informar para o deamon do MySQL, o mysqld que é necessário criar os arquivos do MySQL no datadir, e para isso basta fazer dessa forma.

[root@PerformanceDB /]# mysqld --initialize
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

Vejam que eu tive um erro, no meu servidor não tem o libaio instalado, então antes vou ter que fazer a instalação, pois ele é um pré requisito.

[root@PerformanceDB /]# yum install libaio -y
Plugins carregados: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.es.its.nyu.edu
 * extras: mirrors.centos.webair.com
 * updates: mirrors.tripadvisor.com
Resolvendo dependências
--> Executando verificação da transação
---> O pacote libaio.x86_64 0:0.3.109-13.el7 será instalado
--> Resolução de dependências finalizada

Dependências resolvidas

=========================================================================================================================================================
 Package Arq. Versão Repo Tam.
=========================================================================================================================================================
Instalando:
 libaio x86_64 0.3.109-13.el7 base 24 k

Resumo da transação
=========================================================================================================================================================
Instalar 1 Package

Tamanho total do download: 24 k
Tamanho depois de instalado: 38 k
Downloading packages:
libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00 
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Instalando : libaio-0.3.109-13.el7.x86_64 1/1 
 Verifying : libaio-0.3.109-13.el7.x86_64 1/1 

Instalados:
 libaio.x86_64 0:0.3.109-13.el7 

Concluído

Agora vamos novamente inicializar o datadir.

[root@PerformanceDB /]# mysqld --initialize
2018-08-20T18:48:38.536672Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-20T18:48:38.783197Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-08-20T18:48:38.845312Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-08-20T18:48:38.915621Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a6c4fac4-a4a9-11e8-9c55-72b5b55ced55.
2018-08-20T18:48:38.921551Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-08-20T18:48:38.922370Z 1 [Note] A temporary password is generated for root@localhost: hghp(d#a_9tC

Veja que ele já mostra a senha temporária do usuário root, guarde ela pois vamos precisar para acessar o MySQL, diferente da instalação através do repositório, essa senha não foi gravada no log de erro, e esse é o único momento que ela é exibida, caso não anote será necessário excluir os arquivos do datadir e executar novamente o comando mysqld –initialize.
Vamos ver como que ficou o datadir.

[root@PerformanceDB /]# ls -lah /var/lib/mysql/
total 109M
drwxr-xr-x. 5 mysql mysql 147 Ago 20 18:48 .
drwxr-xr-x. 28 root root 4,0K Ago 20 18:34 ..
-rw-r-----. 1 mysql mysql 56 Ago 20 18:48 auto.cnf
-rw-r-----. 1 mysql mysql 417 Ago 20 18:48 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12M Ago 20 18:48 ibdata1
-rw-r-----. 1 mysql mysql 48M Ago 20 18:48 ib_logfile0
-rw-r-----. 1 mysql mysql 48M Ago 20 18:48 ib_logfile1
drwxr-x---. 2 mysql mysql 4,0K Ago 20 18:48 mysql
drwxr-x---. 2 mysql mysql 8,0K Ago 20 18:48 performance_schema
drwxr-x---. 2 mysql mysql 8,0K Ago 20 18:48 sys

Agora já podemos iniciar o serviço do mysql, nesse caso recomendo utilizar o mysql_safe e não apenas o mysqld, vejam também que no final do mysql_safe eu coloquei um &, isso é para que ele fique executando em segundo plano.

[root@PerformanceDB /]# mysqld_safe &
[1] 22418
[root@PerformanceDB /]# 2018-08-20T19:01:34.306959Z mysqld_safe Logging to '/var/log/mysqld.log'.
2018-08-20T19:01:34.344019Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Vamos conferir se o serviço está rodando.

[root@PerformanceDB /]# ps -aux |grep mysql 
root 22418 0.0 0.0 113308 1624 pts/0 S 19:01 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
mysql 22555 1.2 8.8 1116952 167392 pts/0 Sl 19:01 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root 22584 0.0 0.0 112724 972 pts/0 S+ 19:01 0:00 grep --color=auto mysql

Pronto, mysql instalado e funcionando, agora vamos acessar o MySQL e alterar a senha do root.

[root@PerformanceDB /]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Deu um erro ao ler o socket, já que para a coenxão localhost o mysql cli vai utilziar o socket.
Como podem ver no my.cnf nós definimos onde o socket será criado ‘socket=/var/lib/mysql/mysql.sock’, porém o mysql cli tem como path default /tmp/mysql.sock, então vamos ajustar o my.cnf para que o mysql cli utilize o path que definimos.

vim /etc/my.cnf
[client]
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
socket=/var/lib/mysql/mysql.sock

Como essa alteração só afeta o mysql cli e não mo mysql server não é necessário reiniciar, pois o mysql cli fará a leitura em tempo de execução.

[root@PerformanceDB /]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD = password("Nova.Senha.123@!");
Query OK, 0 rows affected, 1 warning (0,00 sec)

Como última passo para concluirmos esse post, vamos configurar o serviço do MySQL no sistema operacional, para que possamos utilizar os comandos de service mysqld start/stop/status, etc… No inicio eu disse que seria tudo configurado na mão!

Primeiro vamos parar o serviço do MySQL com o mysqladmin

[root@PerformanceDB /]# mysqladmin -uroot -p shutdown
Enter password: 
2018-08-20T19:12:13.528718Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Concluído mysqld_safe

[root@PerformanceDB /]# ps -aux |grep mysql
root 22598 0.0 0.0 112724 968 pts/0 S+ 19:12 0:00 grep --color=auto mysql

Junto com os arquivos que baixamos lá no inicio, já tem pronto o script que precisamos para poder configurar o serviço, que é o arquivo /usr/local/mysql/support-files/mysql.server, só temos que criar um link simbólico em /etc/init.d.

[root@PerformanceDB /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@PerformanceDB /]# ls -lah /etc/init.d/mysqld 
lrwxrwxrwx. 1 root root 43 Ago 20 19:15 /etc/init.d/mysqld -> /usr/local/mysql/support-files/mysql.server

E pronto, já podemos usar o serviço.

[root@PerformanceDB /]# service mysqld start
Starting MySQL. SUCCESS! 

[root@PerformanceDB /]# service mysqld status
 SUCCESS! MySQL running (22783)

[root@PerformanceDB /]# ps -aux |grep mysql
 root 22619 0.0 0.0 11816 1616 pts/0 S 19:15 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/PerformanceDB.pid
 mysql 22783 0.9 8.8 1116948 166592 pts/0 Sl 19:15 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/lib/mysql/PerformanceDB.pid --socket=/var/lib/mysql/mysql.sock
 root 22831 0.0 0.0 112724 972 pts/0 S+ 19:16 0:00 grep --color=auto mysql

 

Veja também
INSTALANDO O MYSQL 5.7 NO CENTOS A PARTIR DO REPOSITÓRIO
INSTALANDO O MYSQL 5.7 NO CENTOS COM OS ARQUIVOS RPM

 

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL.
Nesse momento vamos ver como fazer a instalação a partir do compilado para a sua o CentOS(Para os derivados do Red Hat.)
Vamos a versão mais recente do MySQL 5.7.

A primeira coisa a ser feita é acessar o site do MySQL e fazer o download dos arquivos, veja que estou falando de mais de um arquivo, pois teremos que instalar o MySQL Server, cliente, common, libs, etc…

Recomendo executar um yum update antes de iniciar, pois caso tenha alguma lib desatualizada, nesse momento ela será atualizada.

A primeira coisa é fazer o download dos arquivos que vamos precisar.

https://dev.mysql.com/downloads/mysql/

Ao chegar nessa tela verá que a versão que está selecionada para download são os pacotes da versão 8(MySQL Community Server 8.X.XX), mas queremos a versão 5.7, então nessa mesma página, procure por isso “Looking for previous GA versions?” e logo abaixo terá um link “MySQL Community Server 5.7″, clique nele e será direcionado para a página de download da versão 5.7.
Depois selecione o sistema operacional que deseja, como estamos utilizando o CentOS, vamos selecionar a opção “Red Hat Enterprise Linux / Oracle Linux” e depois emos que selecionar a versão do Sistema Operacional em “Select OS Version:”. No meu caso estou usando a versão 7 x86 64 Bit.

mysql_select_version_so

Muita atenção para baixar os pacotes para a versão correta, por exemplo, se o teu SO for 64 Bit, baixe os pacotes para 64 Bit e não para 32 Bit.

Abaixo vai carregar uma lista se arquivos, vamos baixar os seguintes pacotes(quando sairem novas versões o MySQL, as versões, links, etc… irão mudar)

  • RPM Package, MySQL Server(mysql-community-server-5.7.23-1.el7.x86_64.rpm)
  • RPM Package, Client Utilities((mysql-community-client-5.7.23-1.el7.x86_64.rpm)
  • RPM Package, Shared Libraries(mysql-community-libs-5.7.23-1.el7.x86_64.rpm)
  • RPM Package, MySQL Configuration(mysql-community-common-5.7.23-1.el7.x86_64.rpm)

Você pode fazer o download no seu computador e transferir para o servidor ou pode fazer o download direto no servidor, usando o wget, por exemplo.
Eu vou usar o wget, e para isso fiz esses passos:

  1. Clique no botão download do “RPM Package, MySQL Server”.
  2. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.23-1.el7.x86_64.rpm”.
  3. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.23-1.el7.x86_64.rpm”.
  4. Clique no botão download do “RPM Package, Client Utilities”.
  5. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.23-1.el7.x86_64.rpm”.
  6. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.23-1.el7.x86_64.rpm”.
  7. Clique no botão download do “Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 32-bit), RPM Package Shared Libraries”.
  8. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.23-1.el7.x86_64.rpm”.
  9. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.23-1.el7.x86_64.rpm”.
  10. Clique no botão download do “Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 32-bit), RPM Package MySQL Configuration”.
  11. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.23-1.el7.x86_64.rpm”.
  12. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.23-1.el7.x86_64.rpm”.

Pronto já temos os arquivos que precisamos, vamos fazer a instalação.

Essa sequência que vou instalar é importante, pois é a sequência das dependências necessárias entre os pacotes.

O primeiro pacote que devemos instalar é o RPM Package, MySQL Configuration(mysql-community-common-5.7.23-1.el7.x86_64.rpm).

Para instalar um arquivo RPM utilize esse comando “rpm -ivh <pacote>”

Dependendo de qual distribuição, versão do Sistema Operacional ou o que já foi instalado ou removido do seu servidor, pode ser que seja necessário remover ou instalar outros pacotes que interferem na instalação do MySQl.

Vamos a instalação!

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
No meu caso eu tive um problema com um pacote do MariaDB que já vem instalado no SO, veja.

[root@PerformanceDB ~]# rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm 
aviso: mysql-community-common-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
 o arquivo /usr/share/mysql/czech/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/danish/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/dutch/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/english/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/estonian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/french/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/german/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/greek/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/hungarian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/italian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/japanese/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/korean/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/norwegian-ny/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/norwegian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/polish/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/portuguese/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/romanian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/russian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/serbian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/slovak/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/spanish/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/swedish/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/ukrainian/errmsg.sys da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/Index.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/armscii8.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/ascii.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp1250.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp1256.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp1257.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp850.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp852.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/cp866.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/dec8.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/geostd8.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/greek.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/hebrew.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/hp8.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/keybcs2.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/koi8r.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/koi8u.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/latin1.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/latin2.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/latin5.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/latin7.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/macce.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/macroman.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64
 o arquivo /usr/share/mysql/charsets/swe7.xml da instalação de mysql-community-common-5.7.23-1.el7.x86_64 conflita com o arquivo do pacote mariadb-libs-1:5.5.56-2.el7.x86_64

No caso deu um conflito com o pacote mariadb-libs-1:5.5.56-2.el7.x86_64, vamos remover.

yum remove mariadb-libs-1:5.5.56-2.el7.x86_64

[root@PerformanceDB ~]# yum remove mariadb-libs-1:5.5.56-2.el7.x86_64
Plugins carregados: fastestmirror
Resolvendo dependências
--> Executando verificação da transação
---> O pacote mariadb-libs.x86_64 1:5.5.56-2.el7 será removido
--> Processando dependência: libmysqlclient.so.18()(64bit) para o pacote: 2:postfix-2.10.1-6.el7.x86_64
--> Processando dependência: libmysqlclient.so.18(libmysqlclient_18)(64bit) para o pacote: 2:postfix-2.10.1-6.el7.x86_64
--> Executando verificação da transação
---> O pacote postfix.x86_64 2:2.10.1-6.el7 será removido
--> Resolução de dependências finalizada

Dependências resolvidas

=========================================================================================================================================================
 Package Arq. Versão Repo Tam.
 
 =========================================================================================================================================================
Removendo:
 mariadb-libs x86_64 1:5.5.56-2.el7 installed 4.4 M
Removendo para as dependências:
 postfix x86_64 2:2.10.1-6.el7 installed 12 M

Resumo da transação
=========================================================================================================================================================
Remove 1 Package (+1 Dependent package)

Tamanho depois de instalado: 17 M
Correto? [s/N]:s
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Apagando : 2:postfix-2.10.1-6.el7.x86_64 1/2 
 Apagando : 1:mariadb-libs-5.5.56-2.el7.x86_64 2/2 
 Verifying : 1:mariadb-libs-5.5.56-2.el7.x86_64 1/2 
 Verifying : 2:postfix-2.10.1-6.el7.x86_64 2/2 

Removido(s):
 mariadb-libs.x86_64 1:5.5.56-2.el7 

Dependência(s) removida(s):
 postfix.x86_64 2:2.10.1-6.el7 

Concluído!

Dependência removida, vamos voltar para a instalação.

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm

[root@PerformanceDB ~]# rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm 
aviso: mysql-community-common-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
Updating / installing...
 1:mysql-community-common-5.7.23-1.e################################# [100%]

O próximo pacote a ser instalado é o RPM Package, Shared Libraries(mysql-community-libs-5.7.23-1.el7.x86_64.rpm).
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm

[root@PerformanceDB ~]# rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
aviso: mysql-community-libs-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
Updating / installing...
 1:mysql-community-libs-5.7.23-1.el7################################# [100%]

Agora vamos instalar o RPM Package, Client Utilities(mysql-community-client-5.7.23-1.el7.x86_64.rpm).
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm

[root@PerformanceDB ~]# rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm 
aviso: mysql-community-client-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
Updating / installing...
 1:mysql-community-client-5.7.23-1.e################################# [100%]

E por fim vamos instalar o MysQL Server, RPM Package, MySQL Server(mysql-community-server-5.7.23-1.el7.x86_64.rpm).
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

Nesse momento eu tive um erro de dependência.

[root@PerformanceDB ~]# rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm
aviso: mysql-community-server-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
erro: Dependências não satisfeitas:
 /usr/bin/perl é requerido por mysql-community-server-5.7.23-1.el7.x86_64
 libaio.so.1()(64bit) é requerido por mysql-community-server-5.7.23-1.el7.x86_64
 libaio.so.1(LIBAIO_0.1)(64bit) é requerido por mysql-community-server-5.7.23-1.el7.x86_64
 libaio.so.1(LIBAIO_0.4)(64bit) é requerido por mysql-community-server-5.7.23-1.el7.x86_64
 perl(Getopt::Long) é requerido por mysql-community-server-5.7.23-1.el7.x86_64
 perl(strict) é requerido por mysql-community-server-5.7.23-1.el7.x86_64

Então vou ter que instalar o libaio.
yum install libaio -y

[root@PerformanceDB ~]# yum install libaio -y
Plugins carregados: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.ca.planethoster.net
 * extras: centos.mirror.iweb.ca
 * updates: centos.mirror.iweb.ca
Resolvendo dependências
--> Executando verificação da transação
---> O pacote libaio.x86_64 0:0.3.109-13.el7 será instalado
--> Resolução de dependências finalizada

Dependências resolvidas

=========================================================================================================================================================
 Package Arq. Versão Repo Tam.
=========================================================================================================================================================
Instalando:
 libaio x86_64 0.3.109-13.el7 base 24 k

Resumo da transação
=========================================================================================================================================================
Instalar 1 Package

Tamanho total do download: 24 k
Tamanho depois de instalado: 38 k
Downloading packages:
libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00 
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Aviso: o RPMDB foi alterado de fora do yum.
 Instalando : libaio-0.3.109-13.el7.x86_64 1/1 
 Verifying : libaio-0.3.109-13.el7.x86_64 1/1 

Instalados:
 libaio.x86_64 0:0.3.109-13.el7 

Concluído!

Ao continuar a instalar, tive mais um erro de dependência, agora com o perl.

[root@PerformanceDB ~]# rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm
aviso: mysql-community-server-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
erro: Dependências não satisfeitas:
/usr/bin/perl é requerido por mysql-community-server-5.7.23-1.el7.x86_64
perl(Getopt::Long) é requerido por mysql-community-server-5.7.23-1.el7.x86_64
perl(strict) é requerido por mysql-community-server-5.7.23-1.el7.x86_64

Então vou instalar o perl.
yum install perl -y
Esse log de instalação é bem longo… Por isso não vou colocar aqui.

E agora voltar a instalar o MySQL server.

[root@PerformanceDB ~]# rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm
aviso: mysql-community-server-5.7.23-1.el7.x86_64.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
Updating / installing...
 1:mysql-community-server-5.7.23-1.e################################# [100%]

Após concluir a instalação o serviço do MySQL não vai estar funcionando, mas antes de iniciar o serviço verifique quais pacotes do MySQL foram instalados.

[root@PerformanceDB ~]# rpm -qa |grep mysql
mysql-community-libs-5.7.23-1.el7.x86_64
mysql-community-server-5.7.23-1.el7.x86_64
mysql-community-common-5.7.23-1.el7.x86_64
mysql-community-client-5.7.23-1.el7.x86_64

Agora basta iniciar o serviço do MySQL com “service mysqld start” OU “systemctl start mysqld.service”

para verificar se o serviço subiu certo, use uma dessas opções:

[root@PerformanceDB ~]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
 Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
 Active: active (running) since Sex 2018-08-17 18:02:21 UTC; 12min ago
 Docs: man:mysqld(8)

http://dev.mysql.com/doc/refman/en/using-systemd.html

 Process: 12087 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
 Process: 12010 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 12090 (mysqld)
 CGroup: /system.slice/mysqld.service
 └─12090 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Ago 17 18:02:16 PerformanceDB systemd[1]: Starting MySQL Server...
Ago 17 18:02:21 PerformanceDB systemd[1]: Started MySQL Server.

OU

[root@PerformanceDB ~]# ps -aux |grep mysql
mysql 12090 0.0 17.1 1119500 174460 ? Sl 18:02 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 12131 0.0 0.0 112724 968 pts/0 S+ 18:14 0:00 grep --color=auto mysql

Apesar do serviço do MySQL estar rodando, para logar precisamos recuperar a senha do usuário root, quando o serviço é iniciado pela primeira vez, uma senha temporária é criada. Essa senha é gerada no log de error do MySQL Server. o path default do log de erros é em /var/log/mysqld.log, mas ele também pode ser verificado no arquivo de configuração do MySQL, /etc/my.cnf “log-error=/var/log/mysqld.log”.
Para ver a senha gerada, você pode abrir o arquivo de configuração vi /etc/my.cnf ou utilziar o comando grep ‘temporary password’ /var/log/mysqld.log

[root@PerformanceDB ~]# grep 'temporary password' /var/log/mysqld.log
2018-08-17T18:02:18.357589Z 1 [Note] A temporary password is generated for root@localhost: >th<BR,Jd5rr

Como podemos ver a senha é >th<BR,Jd5rr e com ela podemos acessar o MySQl com o usuário root e alterar a senha.

[root@PerformanceDB ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD = password("Nova.Senha.123@!");
Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql>

Pronto, o MySQL 5.7 está instalado e funcionando no CentOS.

Veja também
INSTALANDO O MYSQL 5.7 NO CENTOS A PARTIR DO REPOSITÓRIO
INSTALANDO O MYSQL 5.7 NO CENTOS A PARTIR DOS BINÁRIOS

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL.
Nesse momento vamos ver como fazer a instalação a partir do repositório oficial do MySQL.
Vamos a versão mais recente do MySQL 5.7.

A primeira coisa a ser feita é acessar o site do MySQL e fazer o download do arquivo de configuração do repositório.

https://dev.mysql.com/downloads/repo/yum/

No meu caso é o CentOS 7.5 então vou fazer o download do “Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package”
Você pode fazer o download no seu computador e transferir para o servidor ou pode fazer o download direto no servidor, usando o wget, por exemplo.
Eu vou usar o wget, e para isso fiz esses passos:

  1. Acesse https://dev.mysql.com/downloads/repo/yum/
  2. Clique no botão download do “Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package”
  3. Vai aparecer uma página que pede para você fazer o login ou se cadastrar, não precisa fazer nada disso. Mais para baixo tem um link “No thanks, just start my download.”, clique com o botão direito do mouse e ai em “Copiar endereço do Link”, que tem essa url “https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm”
  4. No meu servidor usei o wget para fazer o download do arquivo assim “wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm” . O wget não vem instalado por padrão no CentOS 7.5, para instalar basta usar esse comando “yum install wget -y”

Pronto já temos o arquivo que vai configurar o repositório no servidor, veja que o arquivo de configuração do repositório é do MySQL 8.0, mas isso não é um problema, depois de instalar vamos alterar para ele instalar o MySQL 5.7.

Agora vamos instalar e configurar o repositório.
Para instalar você precisa ter poderes de root, então caso não esteja logado com o root, utilize o sudo.

rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

[root@PerfomanceDB ~]# rpm -Uvh mysql80-community-release-el7-1.noarch.rpm 
aviso: mysql80-community-release-el7-1.noarch.rpm: Cabeçalho V3 DSA/SHA1 Signature, ID da chave 5072e1f5: NOKEY
Preparando... ################################# [100%]
Updating / installing...
 1:mysql80-community-release-el7-1 ################################# [100%]

Vamos verificar quais as versões do MySQL que estão disponíveis e qual está habilitada.

yum repolist all | grep mysql

[root@PerfomanceDB ~]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community desabilitado
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community desabilitado
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community desabilitado
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community desabilitado
mysql-connectors-community/x86_64 MySQL Connectors Community habilitado: 63
mysql-connectors-community-source MySQL Connectors Community desabilitado
mysql-tools-community/x86_64 MySQL Tools Community habilitado: 69
mysql-tools-community-source MySQL Tools Community - Sou desabilitado
mysql-tools-preview/x86_64 MySQL Tools Preview desabilitado
mysql-tools-preview-source MySQL Tools Preview - Sourc desabilitado
mysql55-community/x86_64 MySQL 5.5 Community Server desabilitado
mysql55-community-source MySQL 5.5 Community Server desabilitado
mysql56-community/x86_64 MySQL 5.6 Community Server desabilitado
mysql56-community-source MySQL 5.6 Community Server desabilitado
mysql57-community/x86_64 MySQL 5.7 Community Server desabilitado
mysql57-community-source MySQL 5.7 Community Server desabilitado
mysql80-community/x86_64 MySQL 8.0 Community Server habilitado: 
mysql80-community-source MySQL 8.0 Community Server desabilitado

Veja que está habilitada a versão mysql80-community/x86_64, mas nós queremos a versão mysql57-community/x86_64, para fazer isso execute esses comandos.

Para desabilitar a versão 8.0
yum-config-manager –disable mysql80-community

Para habilitar a versão 5.7
yum-config-manager –enable mysql57-community

[root@PerfomanceDB ~]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community desabilitado
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community desabilitado
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community desabilitado
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community desabilitado
mysql-connectors-community/x86_64 MySQL Connectors Community habilitado: 63
mysql-connectors-community-source MySQL Connectors Community desabilitado
mysql-tools-community/x86_64 MySQL Tools Community habilitado: 69
mysql-tools-community-source MySQL Tools Community - Sou desabilitado
mysql-tools-preview/x86_64 MySQL Tools Preview desabilitado
mysql-tools-preview-source MySQL Tools Preview - Sourc desabilitado
mysql55-community/x86_64 MySQL 5.5 Community Server desabilitado
mysql55-community-source MySQL 5.5 Community Server desabilitado
mysql56-community/x86_64 MySQL 5.6 Community Server desabilitado
mysql56-community-source MySQL 5.6 Community Server desabilitado
mysql57-community/x86_64 MySQL 5.7 Community Server habilitado: 287
mysql57-community-source MySQL 5.7 Community Server desabilitado
mysql80-community/x86_64 MySQL 8.0 Community Server desabilitado
mysql80-community-source MySQL 8.0 Community Server desabilitado

Veja que agora está habilitada a versão mysql57-community/x86_64.

Agora vamos instalar o MySQL.

Para isso basta utilizar esse comando.

yum install mysql-community-server

Ele vai perguntar se deseja instalar o mysql-server e todas as suas dependências. Veja na lista que os pacotes que estão sendo exibidos é da versão 5.7, e confirme a instalação.

Após concluir a instalação o serviço do MySQL não vai estar funcionando, mas antes de iniciar o serviço verifique quais pacotes do MySQL foram instalados.

[root@PerfomanceDB ~]# rpm -qa |grep mysql
mysql80-community-release-el7-1.noarch
mysql-community-common-5.7.23-1.el7.x86_64
mysql-community-client-5.7.23-1.el7.x86_64
mysql-community-libs-compat-5.7.23-1.el7.x86_64
mysql-community-libs-5.7.23-1.el7.x86_64
mysql-community-server-5.7.23-1.el7.x86_64

Agora basta iniciar o serviço do MySQL com “service mysqld start” OU “systemctl start mysqld.service”

para verificar se o serviço subiu certo, use uma dessas opções:

[root@PerfomanceDB ~]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
 Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
 Active: active (running) since Qui 2018-08-16 14:12:10 UTC; 1min 15s ago
 Docs: man:mysqld(8)

http://dev.mysql.com/doc/refman/en/using-systemd.html

 Process: 11057 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
 Process: 10978 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 11060 (mysqld)
 CGroup: /system.slice/mysqld.service
 └─11060 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Ago 16 14:12:06 PerfomanceDB systemd[1]: Starting MySQL Server...
Ago 16 14:12:10 PerfomanceDB systemd[1]: Started MySQL Server.

OU

ps -aux |grep mysq
[root@PerfomanceDB ~]# ps -aux |grep mysql
mysql 11060 0.2 17.3 1119504 175824 ? Sl 14:12 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root 11113 0.0 0.0 112724 972 pts/0 S+ 14:13 0:00 grep --color=auto mysql

Apesar do serviço do MySQL estar rodando, para logar precisamos recuperar a senha do usuário root, quando o serviço é iniciado pela primeira vez, uma senha temporária é criada. Essa senha é gerada no log de error do MySQL Server. o path default do log de erros é em /var/log/mysqld.log, mas ele também pode ser verificado no arquivo de configuração do MySQL, /etc/my.cnf “log-error=/var/log/mysqld.log”.
Para ver a senha gerada, você pode abrir o arquivo de configuração vi /etc/my.cnf ou utilziar o comando grep ‘temporary password’ /var/log/mysqld.log

[root@PerfomanceDB ~]# grep 'temporary password' /var/log/mysqld.log
2018-08-16T14:12:07.641244Z 1 [Note] A temporary password is generated for root@localhost: f_ug&1=!C=*Y

Como podemos ver a senha é f_ug&1=!C=*Y e com ela podemos acessar o MySQl com o usuário root e alterar a senha.

[root@PerfomanceDB ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD = password("Nova.Senha.123@!");
Query OK, 0 rows affected, 1 warning (0,00 sec)

mysql>

Pronto, o MySQL 5.7 está instalado e funcionando no CentOS.

Veja também
INSTALANDO O MYSQL 5.7 NO CENTOS COM OS ARQUIVOS RPM
INSTALANDO O MYSQL 5.7 NO CENTOS A PARTIR DOS BINÁRIOS

keys

Antes de começar a escrever suas buscas pelos dados , recomendo você a primeiro ter uma ideia do que é mais importante para seus usuários.
Quais valores e o tamanho de seus subconjunto vão conduzir a escolha do(s) índice(s) . O índice nada mais é que uma forma de acessar
mais rapidamente uma informação específica. Aqui é muito importante perceber que “informação específica” não é “todas as informações”.
E apesar de contribuirem para o acesso a determinados dados, eles vêm com um custo, tanto em armazenamento quanto em processamento. Por isso
a estratégia adotada na criação de um indice deve considerar, por exemplo, que o volume de armazenamento de um indice pode ser muito maior
que o volume de armazenamento do dado que está sendo indexado. Considere os índices em suas estratégias de backup/restore.
E quanto ao processamento? Toda ação de insert/delete/update no banco, refletirá em ajustes nos indices da tabela. E estes, ajustes se aplicam
não só nos indices simples ( que referenciam apenas a coluna alterada) mas também aos indices compostos (compound index) , toda esta alteração ( ou manutenção)
reflete em mais recursos de CPU sendo usados para varrer dados em memória, I/O porque essas atividades consomem log e ainda alguma manutencao de armazenamento
nos arquivos de banco.

A seguir algumas estrategias que podem ajudar na escolha dos seus índices:

– Conhecer as características da base : Se ocorrem muitas modificações no banco de dados ( OLTP ) ou se é um sistema de apoio a decisão (DSS) ou Data
Warehousing (possui normalmente dados apenas de leitura e em grande volume ).

– Conhecer as características das consultas mais executadas : se usam muitos “joins” ou funções para validar dados.
– Identificar as colunas mais utilizadas como filtros,, bem como suas caracteristicas ( o idel sao colunas que nao permitem valores nulos, que possuam valores unicos e que sejam do tipo inteiro)
– Determinar o tipo de indice que pode ser criado ( em geral varia com o sistema de banco de dados usados, mas a grande maioria possui “clustered index” e “nonclustered index”)
– Determinar o armazenamento do indice. De preferencia num grupo de arquivos separados dos dados .

Existem ainda algumas considerações quanto ao Base de Dados :

– Quanto maior a quantidade de indices em uma tabela mais a perfomance em INSERT, UPDATE, DELETE é afetada , porque todos os indices devem ser ajustados de acordo com as alterações nos dados.

– Se possível manter a combinacao de indices com um numero pequeno de colunas .

– Algumas vezes considerar o tempo que otimizador de consulta usa para varrer indices em tabelas pequenas, as vezes, é menos custoso varrer diretamente a tabela de dados e mais, podem ainda nunca
serem usados, apenas consumindo espaco .

– indices em views podem ser uteis quando a view contem agregações, joins ou ambos. ( Depende do Sistema de Banco de dados)

E com relação as consultas :

– Verificar a ordem de uso das colunas indexadas, especialmente as que participam de indices compostos. A coluna usada no WHERE em igual a (=), maior que (>), menor que (<), ou BETWEEN, ou se participar um join , deve ser usada primeiro. Colunas adicionais devem ser ordenadas
com base em seu nível de distinção, ou seja, do mais distinto ao menos distinto.
Por exemplo, se o índice for definido como a, b o índice será útil quando a busca for WHERE a = ‘xxx’ ou WHERE b =’zzzz’ AND a LIKE ‘x%’.
Se a consulta que tivesse pesquisado apenas em b (WHERE b = ‘Jane’), o otimizador de consulta não usaria o índice.

– Prefira consultas que insiram ou modifiquem o máximo de registros possíveis em uma única instrução,
em vez de usar consultas múltiplas para atualizar esses mesmos registros. Ao usar apenas uma instrução, ocorre manutenção otimizada do índice, evitando maior fragmentacao.