Admin/Dev

08
Avril
2020

Installer un serveur web personnel - Partie 2 - Installation de MariaDB via Homebrew

Publié par sky

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.

 
Sommaire de la série
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Les cookies assurent le bon fonctionnement de nos services. En continuant, vous acceptez leur utilisation sur notre site internet.
Accepter En savoir plus