Mysql
 sql >> Database >  >> RDS >> Mysql

Configura MySQL 8 da Binary Tarball

In questo articolo, discuteremo dell'installazione di MySQL tarball binario. Discuteremo l'installazione di MySQL 8 usando tarball binari e installeremo MySQL 8 su CentOS 7 usando tarball binari. L'installazione basata su tarball binari ha i suoi pro e contro, lo esamineremo. L'installazione da tarball binari è indipendente dalla distribuzione Linux o dal sistema init utilizzato dalla distribuzione. Ciò significa che lo stesso metodo di installazione funziona su RPM e sistemi dead based, ad esempio, ma funzionerà anche su distribuzioni più esotiche come Gen 2. È disponibile anche un tarball binario per macOS e la procedura di installazione non è molto diversa, questo metodo richiede una parola più manuale. Lo script mysql_install_db è stato deprecato in MySQL 5.7 ed è stato rimosso da MySQL 8. La creazione iniziale del database può essere eseguita con il comando mysqld –initialize. Ora che installeremo MySQL manualmente, useremo il comando mysqld –initialize per creare un database vuoto.

Per prima cosa facciamo un po' di pulizia. Rimuoveremo la versione molto vecchia di mariadb-libs che fornisce my.cnf che sarebbe in conflitto con la nostra.

Rimuovi librerie Mariadb:

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

Scarica il tarball sorgente di MySQL Community Survey 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

Il tarball non è stato scaricato, quindi scompattiamolo in usr/local

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

Completamento dei prerequisiti

installiamo 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

Creiamo un utente MySQL per te

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

verifica che l'utente mysql sia presente

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

ottenuto /usr/local e creare un collegamento simbolico e quindi controllarlo

[[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

crea la directory dei file MySQL che manterrà la proprietà e le autorizzazioni del set di dati mentre si trova in /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

Inizializza MySQL

Vai alla directory mysql e Inizializza mysqld, nelle versioni precedenti era chiamato 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

Nota che viene generata la password di root temporanea che nel mio caso è ([email protected]:Hqn+jK6lfzNS)

Copia lo script init dai file di supporto in /etc/init.d

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

avvia il server mysql con il file init che abbiamo appena copiato

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

Ora connettiti a mysql fornendo la passwd temporanea generata in precedenza

[[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>

Cambiamo la passwd temporanea per l'utente root.

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

Controlla la posizione del file socket:

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

Per evitare di dover digitare sempre il nome del percorso dei programmi client quando si lavora con MySQL, è possibile aggiungere la directory /usr/local/mysql/bin alla variabile 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