Maison > Article > base de données > Vous apprendre à démarrer et arrêter l'un des services Mysql
Avant de discuter de la façon de démarrer le serveur MySQL, réfléchissons sous quel utilisateur doit exécuter le serveur MySQL. Le serveur peut être démarré manuellement ou automatiquement. Si vous le démarrez manuellement, le serveur démarre en tant qu'utilisateur avec lequel vous vous connectez à Unix (Linux), c'est-à-dire que si vous vous connectez à Unix avec paul et démarrez le serveur, il s'exécute avec paul si vous passez en root avec ; la commande su, puis démarrez le serveur pour qu'il s'exécute en tant que root. Cependant, dans la plupart des cas, vous ne souhaitez probablement pas démarrer le serveur manuellement, vous ferez probablement en sorte que le serveur MySQL démarre automatiquement au démarrage du système, dans le cadre du processus de démarrage standard, qui sous Unix est effectué par l'utilisateur racine Unix du système, et tous les processus exécutés au sein du processus s'exécutent avec les privilèges root.
Vous devez garder deux objectifs à l'esprit lors du processus de démarrage du serveur MySQL :
Vous souhaitez que le serveur s'exécute en tant qu'utilisateur non root. Généralement, vous souhaitez limiter la capacité de tout processus en cours d'exécution à moins que les privilèges root ne soient vraiment requis, ce qui n'est pas le cas de MySQL.
Vous souhaitez que le serveur s'exécute toujours sous le même utilisateur. Il est très gênant d'utiliser un utilisateur et d'exécuter le serveur sous un autre utilisateur à d'autres moments. Cela entraîne des fichiers et des répertoires ayant des attributs différents. Le répertoire de données est créé et peut empêcher le serveur d'accéder aux bases de données ou aux tables, selon l'utilisateur sous lequel vous exécutez. Exécuter le serveur avec le même utilisateur vous aidera à éviter ce problème.
Pour exécuter le serveur en tant qu'utilisateur normal sans privilèges, suivez ces étapes :
Sélectionnez un utilisateur pour exécuter le serveur Mysqld peut être exécuté comme n'importe quel utilisateur. Mais conceptuellement, il est plus clair de créer un utilisateur distinct pour les opérations MySQL. Vous pouvez également sélectionner un groupe d'utilisateurs spécifiquement pour MySQL. Cet article utilise mysql adm et mysqlgrp comme nom d'utilisateur et nom de groupe d'utilisateurs respectivement.
Si vous avez installé MySQL sous votre propre compte et que vous ne disposez pas de droits d'administration spéciaux sur le système, vous pourrez exécuter le serveur sous votre propre identifiant utilisateur. Dans ce cas, remplacez mysqladm et mysqlgrp par votre propre nom de connexion et groupe d'utilisateurs.
Si vous utilisez un fichier rpm pour installer MySQL sur RedHat Linux, l'installation créera automatiquement un compte nommé mysql et utilisera ce compte pour remplacer mysqladm.
Si nécessaire, créez un compte de serveur en utilisant le processus normal de création d'utilisateurs du système. Vous devez être root pour le faire.
Si le serveur est en cours d'exécution, arrêtez-le.
Modifiez la propriété du répertoire de données et de tous les sous-répertoires et fichiers afin que l'utilisateur mysqladm en soit propriétaire. Par exemple, si le répertoire de données est /usr/local/var, vous pouvez définir le propriétaire de mysqladm comme suit (vous devez exécuter ces commandes en tant que root) :
#cd /usr/local/var
#chown -R mysqladm.mysqlgrp
Modifiez les autorisations du répertoire de données et de tous les sous-répertoires et fichiers afin qu'ils ne soient accessibles qu'à l'utilisateur mysqladm. Si le répertoire de données est /usr/local/var, vous pouvez définir tout ce qui appartient à mysqladm :
# cd /usr/local/var
# chmod -R go- rwx
Lorsque vous définissez le propriétaire et le mode du répertoire de données et de son contenu, faites attention aux liens symboliques. Vous devez les suivre et modifier la propriété et le mode des fichiers ou répertoires vers lesquels ils pointent. Cela peut être un peu gênant si le répertoire dans lequel se trouvent les fichiers de connexion se trouve dans un endroit qui ne vous appartient pas et que vous devrez peut-être être root.
Après avoir terminé le processus ci-dessus, vous devez vous assurer de toujours démarrer le serveur lorsque vous êtes connecté en tant que mysqladm ou root. Dans ce dernier cas, assurez-vous de spécifier l'option --user=mysqladm pour activer le serveur. pour changer son ID utilisateur en mysqladm (s'applique également au processus de démarrage du système).
L'option --user a été introduite dans MySQL 3.22. Si vous disposez d'une ancienne version, vous pouvez utiliser la commande su pour indiquer au système d'exécuter le serveur sous un utilisateur spécifique lors de l'exécution en tant que root.
Comment démarrer le serveur
Après avoir déterminé le compte utilisé pour exécuter le serveur, vous pouvez choisir comment organiser le démarrage du serveur. Vous pouvez l'exécuter manuellement à partir de la ligne de commande ou automatiquement lors du démarrage du système. Il existe trois méthodes principales pour démarrer le serveur :
Appelez directement mysqld.
Il s’agit peut-être de la méthode la moins couramment utilisée et il est recommandé de ne pas l’utiliser davantage. Cet article ne la présentera donc pas en détail.
Appelez le script safe_mysqld.
safe_mysqld tente de déterminer l'emplacement du programme serveur et des répertoires de données. Le serveur est ensuite appelé avec des options reflétant ces valeurs. safe_mysqld déplace le périphérique d'erreur standard du serveur vers un fichier d'erreur dans le répertoire de données afin qu'il y ait un enregistrement de celui-ci. Après avoir démarré le serveur, safe_mysqld le surveille également et le redémarre s'il meurt. safe_mysqld est couramment utilisé sur les systèmes Unix de style BSD.
Si vous démarrez sqfe_mysqld en tant que root ou pendant le démarrage du système, le journal des erreurs appartient à root, ce qui peut provoquer une erreur "autorisation refusée" lorsque vous essayez ultérieurement d'appeler safe_mysqld en tant qu'utilisateur non privilégié Supprimer. le journal des erreurs et réessayez.
Appelez le script mysql.server.
Ce script démarre le serveur via safe_mysqld.mysql.server, qui est destiné à être utilisé sur les systèmes de démarrage et d'arrêt System V qui contiennent plusieurs paramètres qui sont inclus lorsque la machine entre ou sortie un donné Le répertoire de script utilisé lors de l'exécution du niveau. Il peut utiliser un point de paramètre start ou stop pour indiquer si vous souhaitez démarrer ou arrêter le serveur.
Le script safe_mysqld est installé dans le répertoire bin du répertoire d'installation de MySQL, ou se trouve dans le répertoire scripts de la distribution du code source MySQL. Le script mysql.server est installé dans le répertoire share/mysqld sous le répertoire d'installation MySQL ou se trouve dans le répertoire support_files de la distribution du code source MySQL. Si vous souhaitez les utiliser, vous devez les copier dans le répertoire approprié.
Pour les systèmes de style BSD (FreeBSD, OpenBSD, etc.), il y a généralement plusieurs fichiers dans le répertoire /etc pour initialiser les services lors du démarrage. Ces fichiers ont généralement des noms commençant par "rc", et c'est le cas. possible Constitué d'un fichier appelé "rc.local" (ou quelque chose de similaire), spécifiquement utilisé pour démarrer les services installés localement. Sur un tel système, vous pouvez démarrer le serveur en ajoutant une ligne similaire à la suivante au fichier rc.local (si le répertoire safe_mysqld est différent sur votre système, modifiez-le simplement) :
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld &
fi
Pour les systèmes de style System V, vous pouvez passer mysql .server est placé dans le répertoire de démarrage approprié sous /etc pour l'installer. Si vous utilisez Linux et installez MySQL à partir d'un fichier RPM, cela est déjà fait pour vous, sinon installez le script dans le répertoire de démarrage principal et placez la connexion dans le répertoire de niveau d'exécution approprié. Vous pouvez également rendre le script démarrable uniquement par root.
La disposition des répertoires des fichiers de démarrage varie d'un système à l'autre, vous devez donc vérifier comment votre système les organise. Par exemple, sur Linux PPC, les répertoires sont /etc/rc.d et /etc/rc.d/rc3.d, vous pouvez donc installer le script comme ceci :
#cp mysql.server /etc /rc.d /init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc.d/rc3.d
#ln -s ../init .d/mysql.server S99mysql
Sous Solaris, le répertoire principal du script est /etc/init.d et le répertoire du niveau d'exécution est /etc/rd2.d, donc la commande ressemble à ceci :
#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
# ln -s ../init.d/mysql.server S99mysql
Lorsque le système démarre, le script S99mysql sera automatiquement appelé avec un paramètre de démarrage. Si vous disposez de la commande chkconfig (disponible sous Linux), vous pouvez l'utiliser pour installer le script mysql.server au lieu d'exécuter manuellement la commande ci-dessus comme ci-dessus.
Spécifier les options de démarrage
Si vous souhaitez spécifier des options de démarrage supplémentaires au démarrage du serveur, vous disposez de deux méthodes. Vous pouvez modifier le script de démarrage que vous utilisez (safe_mysqld ou mysql.server) et spécifier des options directement sur la ligne appelant le serveur, ou spécifier des options dans un fichier d'options. Il est recommandé de spécifier les options, si possible, dans un fichier d'options globales, généralement situé dans /etc/my.cnf (Unix) ou c:my.cnf (Windows).
Certains types d'informations ne peuvent pas être spécifiés avec les options du serveur. Pour cela, vous devrez peut-être modifier safe_mysqld. Par exemple, si votre serveur ne parvient pas à sélectionner correctement le fuseau horaire local et renvoie les valeurs horaires en GMT, vous pouvez définir la variable d'environnement TZ pour lui donner une indication. Si vous démarrez le serveur avec safe_mysqld ou mysql.server, vous pouvez ajouter un paramètre de fuseau horaire à safe_mysqld. Recherchez la ligne qui démarre le serveur et ajoutez la commande suivante avant la ligne :
TZ=US/Central
export TZ
La syntaxe de la commande ci-dessus est Solaris et peut être différente pour les autres systèmes, veuillez consulter le manuel correspondant. Si vous modifiez votre script de démarrage, gardez à l'esprit que la prochaine fois que vous installerez MySQL (par exemple lors d'une mise à niveau vers une nouvelle version), vos modifications seront perdues à moins que vous ne copiez d'abord le script de démarrage ailleurs. Après avoir installé la nouvelle version, comparez les anciens et les nouveaux scripts pour voir les modifications que vous devez reconstruire.
Vérifiez vos tables au démarrage
En plus de faire en sorte que votre serveur démarre au démarrage du système, vous souhaiterez peut-être installer les scripts myisamchk et isamchk pour vérifier vos tables avant le démarrage du serveur. Vous redémarrez peut-être après un crash. Il est possible que la table ait été corrompue. La vérifier avant de démarrer est un bon moyen de trouver le problème.
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!