Instalação do MySQL 5.5.60 no CentOS 7

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:

  1. Parar o serviço MySQL
/etc/init.d/mysqlsvc stop

  1. Iniciar em modo seguro
mysqld_safe --user=dbuser --skip-grant-tables --skip-networking &

  1. Acessar o MySQL
mysql -u root mysql

  1. Atualizar senha
UPDATE user SET Password=PASSWORD('nova_senha') WHERE USER='root';
FLUSH PRIVILEGES;

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

  1. Baixar MySQL Community Server 5.5.60 (versão Linux - Generic)
  2. Transferir via FTP para o servidor CentOS
  3. 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;

Tags: MySQL CentOS database Installation Linux

Publicado em 8-24 21:45