sql >> Base de Datos >  >> RDS >> Mysql

Configurar MySQL 8 desde Binary Tarball

En este artículo, discutiremos la instalación de MySQL tarball binario. Discutiremos la instalación de MySQL 8 usando tarballs binarios e instalaremos MySQL 8 en CentOS 7 usando tarballs binarios. La instalación basada en tarballs binarios tiene sus pros y sus contras, lo veremos. La instalación desde tarballs binarios es independiente de la distribución de Linux o del sistema de inicio que utiliza la distribución. Esto significa que el mismo método de instalación funciona en sistemas basados ​​en RPM y muertos, por ejemplo, pero también funcionará en distribuciones más exóticas como Gen 2. También hay disponible un tarball binario para macOS y el procedimiento de instalación no es muy diferente, este método necesita una palabra más manual. El script mysql_install_db quedó obsoleto en MySQL 5.7 y se eliminó de MySQL 8. La creación inicial de la base de datos se puede realizar con el comando mysqld –initialize. Ahora que instalaremos MySQL manualmente, usaremos el comando mysqld –initialize para crear una base de datos vacía.

Primero hagamos un poco de limpieza. Eliminaremos la versión muy antigua de mariadb-libs que proporciona my.cnf, que entraría en conflicto con la nuestra.

Eliminar bibliotecas de Mariadb:

[[email protected] ~]# sudo yum remove -y mariadb-libs

Descargue el código fuente de la encuesta comunitaria MySQL 8.0

[[email protected] ~]# curl -L -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 575M 100 575M 0 0 7726k 0 0:01:16 0:01:16 --:--:-- 8516k
[[email protected] ~]# ll
-rw-r--r--. 1 root root 603019898 Jul 23 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

El tarball no se descarga, así que vamos a descomprimirlo en usr/local

[[email protected] ~]# sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

Completar los requisitos previos

instalemos libaio.

[[email protected] ~]# sudo yum -y install libaio
Create a MySQL group, this is normally done by the packages but because we are installing it manually from binary tarball now we need to do it.
[[email protected] ~]# sudo groupadd mysql

Vamos a crear un usuario de MySQL que

[[email protected] ~]# sudo useradd -r -g mysql -s /bin/false mysql

verificar que el usuario de mysql está allí

[[email protected] ~]# getent passwd | grep mysql
mysql:x:988:1001::/home/mysql:/bin/false

obtuvo /usr/local y creó un enlace simbólico y luego verifíquelo

[[email protected] ~]# cd /usr/local
[[email protected] local]# sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql
[[email protected] local]# ls -la mysql
lrwxrwxrwx. 1 root root 35 Jul 23 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64

cree un directorio de archivos MySQL que contendrá la propiedad y los permisos del conjunto de datos mientras se encuentre en /usr/local/

[[email protected] local]# sudo mkdir mysql-files
[[email protected] local]# sudo chown mysql:mysql mysql-files
[[email protected] local]# sudo chmod 750 mysql-files

Inicializar MySQL

Vaya al directorio mysql e inicialice mysqld, en versiones anteriores esto se llamaba mysql_installed_db

[[email protected] local]# cd mysql
[[email protected] mysql]# sudo ./bin/mysqld --initialize --user=mysql
2020-07-23T12:12:10.028247Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 25014
2020-07-23T12:12:15.470538Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: Hqn+jK6lfzNS
2020-07-23T12:12:18.875370Z 0 [System] [MY-013170] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initializing of server has completed

Tenga en cuenta que se genera la contraseña raíz temporal, que en mi caso es ([email protected]:Hqn+jK6lfzNS)

Copie el script de inicio de los archivos de soporte a /etc/init.d

[[email protected] mysql]# sudo cp ./support-files/mysql.server /etc/init.d/

inicie el servidor mysql con el archivo de inicio que acabamos de copiar

[[email protected] mysql]# sudo /etc/init.d/mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
. SUCCESS!

Ahora conéctese a mysql proporcionando la contraseña temporal generada anteriormente

[[email protected] mysql]# ./bin/mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11
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>

Cambiemos la contraseña temporal para el usuario root.

mysql> alter user 'root'@'localhost' identified by 'My_root_pass1!';
Query OK, 0 rows affected (0.07 sec)

Compruebe la ubicación del archivo de socket:

mysql> show variables like 'socket';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| socket | /tmp/mysql.sock |
+---------------+-----------------+
1 row in set (0.01 sec)

Para evitar tener que escribir siempre el nombre de la ruta de los programas cliente cuando trabaja con MySQL, puede agregar el directorio /usr/local/mysql/bin a su variable PATH:

[[email protected] mysql]# export PATH=$PATH:/usr/local/mysql/bin
[[email protected] mysql]# ps -ef | grep mysql
root 25130 1 0 15:16 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
mysql 25215 25130 1 15:16 pts/1 00:00:42 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
root 26171 21375 0 16:21 pts/1 00:00:00 mysql -uroot -px xxxxxxxxxxxx
root 26191 25365 0 16:23 pts/2 00:00:00 grep --color=auto mysq

No