Installer un serveur web personnel - Partie 2 - Installation de MariaDB via Homebrew
Dans le premier article sur l'installation d'un serveur web, nous avons vu comment faire, en utilisant les services pré-installé par Apple. Pour le second article, je m'étais donné comme objectif de faire l'équivalent, en utilisant uniquement Homebrew. Malheureusement, le temps me manque, et je vous propose donc, dans un premier temps d'installer uniquement le moteur de base de données.
Les moteurs de bases de données disponibles via Homebrew sont nombreux. Et par exemple, MySQL que nous avions installé dans le premier article, avec les outils graphiques, y est présent.
Pour ce second article de la série, je choisis d'installer MariaDB, une solution compatible avec MySQL, créé par le concepteur original de MySQL, appartenant désormais à Oracle.
1/ Préparation
Avant de se lancer dans l'installation, il est préférable de vérifier qu'aucune installation de MySQL ou de MariaDB n'est pas déjà présente.
Dans un terminal, tentez de lancer MySQL
mysql
ou peut-être via son chemin complet
/usr/local/mysql/bin/mysql
vous devriez obtenir quelque chose comme
zsh: command not found: mysql
Sinon, il faudra désinstaller l'application avant d'installer la nouvelle.
Il est cependant inutile de supprimer les données que trouvent dans le dossier
/usr/local/var/mysql
si vous souhaitez les utiliser depuis votre nouvelle installation.
2/ Installation
L'installation, à partir de Brew, est assez simple.
brew install mariadb
L'installation est plutôt rapide, une fois le téléchargement effectué. Si tout se passe bien, vous devriez avoir le résultat suivant
==> Downloading https://homebrew.bintray.com/bottles/mariadb-10.4.11.mojave.bottle.1.tar.gz
Already downloaded: /Users/sky/Library/Caches/Homebrew/downloads/838611566ecf6f1cd2034b06c4406171d11102113ff34b4538a6642295d7589c--mariadb-10.4.11.mojave.bottle.1.tar.gz
==> Pouring mariadb-10.4.11.mojave.bottle.1.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
MySQL is configured to only allow connections from localhost by default
To have launchd start mariadb now and restart at login:
brew services start mariadb
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
🺠/usr/local/Cellar/mariadb/10.4.11: 742 files, 167.8MB
Si c'est votre première installation de MariaDB ou de MySQL, en gros, si vous ne disposez d'aucune donnée précédente, créez les premières bases et tables
mysql_install_db
Si vous obtenez le résultat suivant :
mysql.user table already exists!
Run mysql_upgrade, not mysql_install_db
C'est que vous aviez déjà une installation ;-)
3/ Premier démarrage
Comme indiqué lors de l'installation, vous pouvez soit démarrer simplement MariaDB avec la commande
mysql.server start
mais si vous souhaitez que l'application se lance automatiquement lors de votre connexion, vous pouvez le lancer avec la commande suivante
brew services start mariadb
Une solution à privilégier si vous faites du développement web fréquemment.
Vous pouvez vérifier que MariaDB fait bien des services gérés par Brew avec la commande
brew services list
qui, chez moi renvoie le résultat suivant
Name Status User Plist
mariadb started sky /Users/sky/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
minidlna started root /Library/LaunchDaemons/homebrew.mxcl.minidlna.plist
Pourquoi ne pas lancer MariaDB, comme minidlna, via l'utilisateur root, afin que l'application soit disponible au démarrage, même si je ne suis pas loggué ?
Tout simplement, parce que lancé par root, via Homebrew, MariaDB ne démarre tout simplement pas. Je n'ai pas encore réussi à corriger ce soucis, mais si j'y arrive, je ne manquerai pas de mettre à jour l'article.
4/ Finalisation de l'installation
Si, vous aviez des données précédentes, une fois MariaDB lancé, il faudra utiliser la commande
sudo mysql_upgrade
pour mettre à jour les bases de données présentes. C'est une action en 7 étapes et dont le délai dépendra du nombre de bases et de tables que vous aviez auparavant.
Par défaut, il faut savoir que seules les connexions depuis 127.0.0.1 (soit votre Mac), sont autorisées. Pour rendre les bases accessibles depuis l'extérieur, il faudra modifier la configuration en conséquence.
Pour accéder au compte root de la base mysql, il faut utiliser le compte root du Mac, le plus simple est d'utiliser la commande sudo, comme nous l'avons fais pour mettre à jour les bases et tables.
Tous les utilisateurs du Mac peuvent créer leurs propres tables, sans mot de passe, mais ne peuvent pas voir les tables des autres utilisateurs. Mais plus important, les connexions anonymes sont autorisées.
Afin de finaliser complètement la configuration de MariaDB, et sécurisez votre installation avec la commande
sudo mysql_secure_installation
MariaDB va vous poser tout une série de questions pour vous aider à configurer la sécurité de votre installation.
5/ Connexion depuis PHP
MariaDB installé via Homebrew peut être accédé depuis PHP.
Vous pouvez y accéder de manière anonyme
$host = '127.0.0.1';
$login = '';
$pwd = '';
$connection = new MySQLi($host, $login, $pwd, '');
echo $connection->connect_errno;
ou si vous avez désactivé, comme moi les connexions anonymes, vous devrez configurer un utilisateur, et l'autoriser à accéder à la base de données en question.
$host = '127.0.0.1';
$login = 'sky';
$pwd = '78qsd7q8d7qsd7';
$connection = new MySQLi($host, $login, $pwd, '');
echo $connection->connect_errno;
Si cela vous intéresse, je vous donnerai, dans un autre article, la marche à suivre pour créer un utilisateur et lui donner les droits d'accès sur une base.
- Installer un serveur web personnel - Partie 1 - Installation standard de macOS
- Installer un serveur web personnel - Partie 2 - Installation de MariaDB via Homebrew
- Installer un serveur web personnel - Partie 2b - Configurer une socket entre MariaDB et PHP
- Installer un serveur web personnel - Partie 3 - Installation d'Apache et de PHP via Homebrew
- Installer un serveur web personnel - Partie 2c - Corriger l'ERROR 23 (HY000) sur MariaDB
- Installer un serveur web personnel - Partie 3b - Configuration des vhosts sur Apache httpd via Homebrew