Mettez d'abord à jour votre bureau et installez le serveur SQL
sudo apt-get update sudo apt-get install mysql-server
Vérifiez que le serveur est en cours d'exécution avec la commande suivante
sudo systemctl start mysql.service sudo systemctl status mysql.service
Le résultat devrait ressembler à ceci :
Vous devrez définir le mot de passe du compte root si vous exécutez l'installation sur une machine Ubuntu car l'authentification est désactivée sur Ubuntu par défaut. Afin d'éviter une erreur, vous devrez configurer la méthode d'authentification du compte root
sudo mysql
Changez le mot de passe root en utilisant ALTER USER :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Quitter après avoir effectué cette modification
mysql> exit
Pour sécuriser votre serveur, vous devrez exécuter la commande suivante pour configurer votre politique de mot de passe
sudo mysql_secure_installation
La politique de mot de passe indiquée s'appliquera aux comptes d'utilisateurs suivants créés.
La prochaine étape consiste à s'authentifier à l'aide du mot de passe de l'utilisateur root :
mysql -u root -p
Cette commande donne à l'utilisateur root l'accès au cli MySQL, et également d'interagir directement avec le serveur MySQL.
Revenez ensuite à l'utilisation de la méthode d'authentification par défaut à l'aide de cette commande :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
Cela vous permettra de vous connecter à nouveau en utilisant la commande sudo mysql.
Il est mauvais pour OpSec d'utiliser le compte root pour effectuer des actions quotidiennes régulières sur la base de données. La meilleure option est de créer un compte utilisateur avec des privilèges limités.
Cela se fait d'abord en vous connectant en tant que root avec la commande suivante :
sudo mysql
Alternativement, si vous avez déjà défini un mot de passe pour le compte root, utilisez plutôt celui-ci :
mysql -u root -p
Ensuite, créez un nouvel utilisateur :
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
Après avoir entré la commande, suivez l'invite et remplissez votre nom d'utilisateur, votre nom d'hôte (localhost si vous utilisez Ubuntu).
Pour l'authentification, vous avez la possibilité d'utiliser le plugin auth_socket qui fournit une sécurité de chaîne sans nécessiter de mot de passe mais qui présente l'inconvénient d'empêcher les connexions à distance, le plugin authentication_plugin, caching_sha2_password qui est le plugin MySQL par défaut, mais son inconvénient est que certaines versions de PHP n'est pas compatible avec celui-ci ni avec le plugin mysql_native_password.
mysql> CREATE USER 'jack'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Vous pouvez également modifier un utilisateur existant en utilisant :
mysql> ALTER 'jack'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';
Après avoir créé l'utilisateur, vous pouvez lui attribuer des privilèges avec la syntaxe suivante.
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
Utiliser GRANT ALL PRIVILEGES à la place donnera à l'utilisateur des privilèges de superutilisateur similaires à ceux de root. Un tel indicateur irait autrement à l'encontre de l'objectif de création d'un compte utilisateur distinct de root.
La variable PRIVILEGE représente l'action qu'un utilisateur est autorisé à effectuer. Des privilèges globaux peuvent également être accordés en remplaçant database.table par *.
Ci-dessous, nous accorderons aux utilisateurs les autorisations nécessaires pour créer, modifier, supprimer, insérer, sélectionner, mettre à jour et supprimer des données d'une table en utilisant respectivement CREATE, ALTER, DROP, INSERT, SELECT, UPDATE et DELETE.
mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'jack'@'hostname' WITH GRANT OPTION;
L'indicateur WITH GRANT OPTION permet à l'utilisateur d'accorder les privilèges dont il dispose à d'autres utilisateurs.
Ensuite, nous utiliserons la commande FLUSH PRIVILEGES pour vider le cache et libérer de la mémoire :
mysql> FLUSH PRIVILEGES;
Après avoir pu quitter le cli MySQL
mysql> exit
Vous pouvez désormais vous reconnecter en utilisant vos identifiants
mysql -u jack -p
Vous pouvez maintenant vérifier que le serveur MySQL fonctionne avec la commande suivante :
systemctl status mysql.service
Vous pouvez également vous connecter à la base de données MySQL à l'aide de l'outil de commande d'administration mysqladmin.
sudo mysqladmin -p -u jack version
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!