Método 1: Instalação via tar.gz
Preparação inicial
- Remover o MariaDB padrão do CentOS 7
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
- Baixar os pacotes necessários
wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.60.tar.gz
wget https://cmake.org/files/v3.10/cmake-3.10.2.tar.gz
- Criar usuário e grupo para o MySQL
groupadd dbgroup
useradd -r -g dbgroup -s /sbin/nologin dbuser
- Instaalr dependências
yum install ncurses-devel -y
- Compilar e instalar o CMake
tar zxvf cmake-3.10.2.tar.gz -C /opt
cd /opt/cmake-3.10.2
./configure
gmake && gmake install
Compilação e instalação do MySQL
tar zxvf mysql-5.5.60.tar.gz
cd mysql-5.5.60
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.5.60 \
-DMYSQL_DATADIR=/opt/mysql-5.5.60/data \
-DMYSQL_UNIX_ADDR=/opt/mysql-5.5.60/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make && make install
- Criar link simbólico
ln -s /opt/mysql-5.5.60/ /opt/mysql
- Definir permisões
chown -R dbuser:dbgroup /opt/mysql-5.5.60/
- Copiar arquivos de configuração
cd /opt/mysql/support-files
cp my-small.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqlsvc
chmod +x /etc/init.d/mysqlsvc
- Inicializar o banco de dados
cd /opt/mysql/scripts/
./mysql_install_db --basedir=/opt/mysql/ --datadir=/opt/mysql/data/ --user=dbuser
- Eniciar o serviço
/etc/init.d/mysqlsvc start
- Configurar variáveis de ambiente
echo 'export PATH=/opt/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
- Definir senha do root
/opt/mysql/bin/mysqladmin -u root password 'senha_segura123'
- Habilitar inicialização automática
chkconfig mysqlsvc on
chkconfig --list mysqlsvc
Solução de problemas de acesso
Se ocorrer erro de acesso negado:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Execute os seguintes passos:
- Parar o serviço MySQL
/etc/init.d/mysqlsvc stop
- Iniciar em modo seguro
mysqld_safe --user=dbuser --skip-grant-tables --skip-networking &
- Acessar o MySQL
mysql -u root mysql
- Atualizar senha
UPDATE user SET Password=PASSWORD('nova_senha') WHERE USER='root';
FLUSH PRIVILEGES;
- Reiniciar o serviço
/etc/init.d/mysqlsvc restart
Método 2: Instalação alternativa
Remoção do MariaDB
rpm -qa | grep mariadb
rpm -e --nodeps [nome_do_pacote_encontrado]
rm /etc/my.cnf
Instalação do MySQL
- Baixar MySQL Community Server 5.5.60 (versão Linux - Generic)
- Transferir via FTP para o servidor CentOS
- Extrair o arquivo
tar -xvf mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.5.60-linux-glibc2.12-x86_64 /usr/local
cd /usr/local
mv mysql-5.5.60-linux-glibc2.12-x86_64 mysql-5.5.60
Configuração do my.cnf
vi /etc/my.cnf
Adicionar conteúdo:
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql-5.5.60
datadir=/usr/local/mysql-5.5.60/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
Configuração do sistema
cd /usr/local/mysql-5.5.60
groupadd mysqlgrp
useradd -g mysqlgrp mysqlusr
chown -R mysqlusr:mysqlgrp ./
./scripts/mysql_install_db --user=mysqlusr --basedir=/usr/local/mysql-5.5.60/ --datadir=/usr/local/mysql-5.5.60/data/
chown -R mysqlusr:mysqlgrp data
chmod 755 /etc/my.cnf
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
Inicialização e configuração final
service mysqld start
vi ~/.bash_profile
# Adicionar: export PATH=$PATH:/usr/local/mysql-5.5.60/bin
source ~/.bash_profile
mysql -uroot -p
No prompt do MySQL:
use mysql
update user set password=password('senha_desejada') where user='root' and host='localhost';
flush privileges;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'senha_desejada' WITH GRANT OPTION;