Mysql
 sql >> Base de données >  >> RDS >> Mysql

Configurer MySQL 8 à partir de l'archive binaire

Dans cet article, nous discuterons de l'installation de MySQL tarball binaire. Nous discuterons de l'installation de MySQL 8 à l'aide d'archives binaires et installerons MySQL 8 sur CentOS 7 à l'aide d'archives binaires. L'installation basée sur les archives binaires a ses propres avantages et inconvénients, nous allons passer en revue cela. L'installation à partir d'archives binaires est indépendante de la distribution Linux ou du système d'initialisation utilisé par la distribution. Cela signifie que la même méthode d'installation fonctionne sur les systèmes RPM et morts par exemple, mais elle fonctionnera également sur des distributions plus exotiques comme Gen 2. Il existe également une archive binaire pour macOS et la procédure d'installation n'est pas très différente, cette méthode nécessite un mot plus manuel. Le script mysql_install_db était obsolète dans MySQL 5.7 et est supprimé de MySQL 8. La création initiale de la base de données peut être effectuée avec la commande mysqld –initialize. Maintenant que nous allons installer MySQL manuellement, nous allons utiliser la commande mysqld –initialize pour créer une base de données vide.

Faisons d'abord un peu de ménage. Nous allons supprimer la très ancienne version de mariadb-libs qui fournit my.cnf qui entrerait en conflit avec la nôtre.

Supprimer les bibliothèques Mariadb :

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

Téléchargez l'archive source de 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 CurrentDload Upload Total Spent Left Speed0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0100 575M 100 575M 0 0 7726k 0 0:01:16 0:01:16 --:--:-- 8516k
[[email protected] ~]# ll-rw-r--r--. 1 racine racine 603019898 23 juillet 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

L'archive n'est pas téléchargée, décompressons-la dans usr/local

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

Compléter les prérequis

installons libaio.

[[email protected] ~]# sudo yum -y install libaio
Créer un groupe MySQL, cela est normalement fait par les packages, mais comme nous l'installons manuellement à partir de l'archive binaire, nous devons maintenant le faire.
[[email protected] ~]# sudo groupadd mysql

Créons un utilisateur MySQL pour vous

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

vérifier que l'utilisateur mysql est là

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

obtenu /usr/local et créez un lien symbolique, puis vérifiez-le

[[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 mysqllrwxrwxrwx. 1 root root 35 23 juillet 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64

créer un répertoire de fichiers MySQL qui contiendra la propriété et les autorisations de l'ensemble de données tout en se tenant dans /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 

Initialiser MySQL

Allez dans le répertoire mysql et initialisez mysqld, sur les versions antérieures, cela s'appelait mysql_installed_db

[[email protected] local]# cd mysql[[email protected] mysql]# sudo ./bin/mysqld --initialize --user=mysql2020-07-23T12:12:10.028247Z 0 [Système] [MY-013169] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initialisation du serveur en cours en tant que processus 250142020-07-23T12:12 :15.470538Z 5 [Remarque] [MY-010454] [Serveur] Un mot de passe temporaire est généré pour [email protected] :Hqn+jK6lfzNS2020-07-23T12:12:18.875370Z 0 [Système] [MY-013170] [Serveur ] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) l'initialisation du serveur est terminée

Notez que le mot de passe root temporaire est généré, ce qui dans mon cas est ([email protected] :Hqn+jK6lfzNS)

Copiez le script d'initialisation des fichiers de support vers /etc/init.d

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

démarrer le serveur mysql avec le fichier init que nous venons de copier

[[email protected] mysql]# sudo /etc/init.d/mysql.server startStarting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.. RÉUSSI ! 

Connectez-vous maintenant à mysql en fournissant le mot de passe temporaire généré précédemment

[[email protected] mysql]# ./bin/mysql -uroot -pEnter password :Bienvenue dans le moniteur MySQL. Les commandes se terminent par; ou \g.Votre identifiant de connexion MySQL est la version 8Server :8.0.11Copyright (c) 2000, 2018, Oracle et/ou ses sociétés affiliées. Tous droits réservés.Oracle est une marque déposée d'Oracle Corporation et/ou de ses sociétés affiliées. Les autres noms peuvent être des marques déposées de leurs propriétaires respectifs. Tapez 'help;' ou '\h' pour obtenir de l'aide. Tapez '\c' pour effacer l'instruction d'entrée actuelle.mysql>

Modifions le mot de passe temporaire pour l'utilisateur root.

mysql> modifier l'utilisateur 'root'@'localhost' identifié par 'My_root_pass1 !' ; Requête OK, 0 lignes affectées (0,07 seconde)

Vérifiez l'emplacement du fichier socket :

mysql> affiche des variables comme 'socket' ;+---------------+-----------------+| nom_variable | Valeur |+---------------+-----------------+| prise | /tmp/mysql.sock |+---------------+----------------+1 ligne dans l'ensemble (0.01 sec) 

Pour éviter d'avoir à toujours taper le nom du chemin des programmes clients lorsque vous travaillez avec MySQL, vous pouvez ajouter le répertoire /usr/local/mysql/bin à votre variable PATH :

[[email protected] mysql]# export PATH=$PATH:/usr/local/mysql/bin
[[email protected] mysql]# ps -ef | grep mysqlroot 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.pidmysql 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.pidroot 26171 21375 0 16:21 pts/1 00:00:00 mysql -uroot -px xxxxxxxxxxxxroot 26191 25365 0 16:23 pts/2 00:00:00 grep --color=auto mysq

No