Installer MySQL sous Unix / Linux
Résolution des dépendances
MySQL dépend de la bibliothèque libaio. L'initialisation du répertoire de données et les étapes de démarrage du serveur suivantes échoueront si cette bibliothèque n'est pas installée localement.
pilou@lubuntu:~$ sudo apt-get install libaio1 [sudo] password for pilou: Reading package lists...
Done Building dependency tree Reading state information...
Done libaio1 is already the newest version (0.3.111-1).
libaio1 set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 68 not upgraded.
Télechargement de decompression de l'archive
Pour installer une distribution binaire de fichier tar compressée, décompressez-la à l'emplacement d'installation de votre choix.
pilou@lubuntu:~$ mkdir mysql80
pilou@lubuntu:~$ cd mysql80
pilou@lubuntu:~/mysql80$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar --2018-12-30 18:10:42--
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar Resolving dev.mysql.com (dev.mysql.com)...
137.254.60.11 Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar [following] --2018-12-30 18:10:48-- https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar Resolving cdn.mysql.com (cdn.mysql.com)... 23.210.41.222 Connecting to cdn.mysql.com (cdn.mysql.com)|23.210.41.222|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 472883200 (451M) [application/x-tar] Saving to: ‘mysql-8.0.13-linux-glibc2.12-x86_64.tar’
mysql-8.0.13-linux-glib 100%[===============================>] 450,98M 6,86MB/s in 72s
2018-12-30 18:12:01 (6,22 MB/s) - ‘mysql-8.0.13-linux-glibc2.12-x86_64.tar’ saved [472883200/472883200]
pilou@lubuntu:~/mysql80$ ls mysql-8.0.13-linux-glibc2.12-x86_64.tar
L'archive contient le serveur MySQL, l'outil MySQL Router ainsi qu'un banc de test pour MySQL.
pilou@lubuntu:~/mysql80$ tar xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz mysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz
pilou@lubuntu:~/mysql80$ tar xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
pilou@lubuntu:~/mysql80$ ls mysql-8.0.13-linux-glibc2.12-x86_64 bin include LICENSE man README.router support-files docs lib LICENSE.router README share
L'archive une fois decompresser contient:
- bin binaire mysqld, et outils client
- docs Documentation
- man Documentation
- include fichier de developpement
- lib fichier de developpement
- share Fichiers partagé par les bases MySQL
- support-files fichier support
NB: A ce niveau il n'y a pas de repertoire data qui a été crée.
Sous ubuntu, faire
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libtinfo.so.6 libtinfo.so.5
Le répertoire bin contient:
pilou@pilou-pc:~/Formation/mysql-8.0.20-linux-glibc2.12-x86_64$ ls
bin docs include lib LICENSE man README share support-files
Initialisation de mysql
L'initialisation de MySQL permet de créer le repertoire data et de créer un utilisateur root
pilou@pilou-pc:~/Formation/mysql-8.0.20-linux-glibc2.12-x86_64$ ./bin/mysqld --defaults-file=simplemy.ini --console --initialize
pilou@pilou-pc:~/Formation/mysql-8.0.20-linux-glibc2.12-x86_64$ ./bin/mysqld --defaults-file=simplemy.ini --console
Le fichier ini étant:
[mysqld]
basedir=/home/pilou/Formation/mysql-8.0.20-linux-glibc2.12-x86_64
datadir=/home/pilou/Formation/simpleinit/data
log-error=/home/pilou/Formation/simpleinit/mysqld.log
Dans le fichier de log on retrouve le mot de passe de l'administrateur:
2020-05-11T21:03:21.864864Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-05-11T21:03:23.439599Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: e;ActH??b0Es
2020-05-11T21:03:33.232344Z 0 [System] [MY-010116] [Server] /home/pilou/Formation/mysql-8.0.20-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.20) starting as process 13368
Test de MySQL
Le demarrage se fait simplement en invoquant mysqld ici avec la sortie sur la console <source lang="bash"> pilou@lubuntu:~/mysql80/mysql-8.0.13-linux-glibc2.12-x86_64$ ./bin/mysqld --console 2018-12-30T17:36:26.889093Z 0 [System] [MY-010116] [Server] /home/pilou/mysql80/mysql-8.0.13-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.13) starting as process 4836 2018-12-30T17:36:27.406447Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2018-12-30T17:36:27.428554Z 0 [System] [MY-010931] [Server] /home/pilou/mysql80/mysql-8.0.13-linux-glibc2.12-x86_64/bin/mysqld: ready for connections. Version: '8.0.13' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server - GPL. 2018-12-30T17:36:27.557684Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060 </source>
Il est possible de se connecter au serveur avec l'outil cli mysql en utilisant l'utilisateur root et le mot de passe donnée précédemment <source lang="bash">
</source>
pilou@lubuntu:~$ mysql -S /tmp/mysql.sock -u root -p
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.13
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>
Post Installation
La première chose a faire est de changer le password du root en utilisant l'outil mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'piloupilou'; Query OK, 0 rows affected (0.04 sec)
mysql> quit
Pour arreter le serveur, l'outil cli mysqladmin permet de demander l'arret du serveur
/bin/mysqladmin -h localhost -u root -p shutdown
Coté serveur cela donne
2018-12-31T17:01:56.370223Z 15 [System] [MY-013172] [Server] Received SHUTDOWN from user root.
Shutting down mysqld (Version: 8.0.13). 2018-12-31T17:01:58.440304Z 0 [Warning] [MY-010909] [Server] /home/pilou/mysql80/mysql-8.0.13-linux-glibc2.12-x86_64/bin/mysqld: Forcing close of thread 11 user: 'root'. 2018-12-31T17:01:59.817494Z 0 [System] [MY-010910] [Server] /home/pilou/mysql80/mysql-8.0.13-linux-glibc2.12-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.13) MySQL Community Server - GPL. </source>
Création d'un fichier ini de base
Sur le serveur, dans le repertoire de mysql, on va créer un fichier my.cnf minimaliste afin de setter quelques variable
[mysqld]
port = 3306
socket = /tmp/mysql.sock skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K