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 :
[example@sqldat.com ~]# sudo yum remove -y mariadb-libs
Téléchargez l'archive source de MySQL Community Survey 8.0
[example@sqldat.com ~]# 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
[exemple@sqldat.com ~]# 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
[exemple@sqldat.com ~]# sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
Compléter les prérequis
installons libaio.
[example@sqldat.com ~]# 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.
[exemple@sqldat.com ~]# sudo groupadd mysql
Créons un utilisateur MySQL pour vous
[exemple@sqldat.com ~]# sudo useradd -r -g mysql -s /bin/false mysql
vérifier que l'utilisateur mysql est là
[example@sqldat.com ~]# getent passwd | grep mysqlmysql:x:988:1001::/home/mysql:/bin/false
obtenu /usr/local et créez un lien symbolique, puis vérifiez-le
[exemple@sqldat.com ~]# cd /usr/local[exemple@sqldat.com local]# sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql[exemple@sqldat.com 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/
[example@sqldat.com local]# sudo mkdir mysql-files[example@sqldat.com local]# sudo chown mysql:mysql mysql-files[example@sqldat.com local]# sudo chmod 750 mysql-filesInitialiser MySQL
Allez dans le répertoire mysql et initialisez mysqld, sur les versions antérieures, cela s'appelait mysql_installed_db
[exemple@sqldat.com local]# cd mysql[exemple@sqldat.com 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 exemple@sqldat.com :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éeNotez que le mot de passe root temporaire est généré, ce qui dans mon cas est (example@sqldat.com :Hqn+jK6lfzNS)
Copiez le script d'initialisation des fichiers de support vers /etc/init.d
[example@sqldat.com mysql]# sudo cp ./support-files/mysql.server /etc/init.d/démarrer le serveur mysql avec le fichier init que nous venons de copier
[example@sqldat.com 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
[example@sqldat.com 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 :
[example@sqldat.com mysql]# export PATH=$PATH:/usr/local/mysql/bin[exemple@sqldat.com 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