Ce que cet article vous apporte est une introduction à la méthode de démarrage et d'arrêt de mysql à l'aide de la commande service. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Après avoir installé MySQL, il est très difficile de démarrer et d'arrêter à chaque fois. Parfois, je ne me souviens pas d'avoir recherché en ligne et de voir que tout le monde utilise le service pour gérer les services. Je l'ai essayé et cela fonctionne vraiment. Il est recommandé à tout le monde de l’utiliser de cette façon.
Démarrer et arrêter le service mysql
# 启动 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/tmp/mysql.sock # 停止 kill `cat /usr/local/mysql/var/mysqld.pid`
Démarrer et arrêter comme ceci nécessite de se souvenir du chemin de mysql et de l'emplacement de sauvegarde du pid, c'est donc plus gênant.
gestion des services du système de service
La commande service est utilisée pour gérer les services du système, tels que le démarrage (start), l'arrêt (stop), le redémarrage (restart), l'affichage de l'état (statut), etc. . La commande de service elle-même est un script shell utilisé pour appeler facilement le script pour effectuer des tâches. Elle recherche le script de service spécifié dans le répertoire /etc/init.d/.
Les commandes pertinentes incluent :
chkconfig : utilisé pour afficher et définir le niveau d'exécution du service
ntsysv : utilisé pour définir le démarrage automatique du service
Le serviceexécute le service spécifié (appelé script initial System V), conserve uniquement les deux variables d'environnement LANG et TERM et définit le chemin actuel sur /. Si un script de service souhaite être géré par service, il doit au moins prendre en charge les commandes start et stop, et enregistrer le script dans le répertoire /etc/init.d/.
Comment utiliser le service
## 命令格式 Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ] # 查看指定服务的命令行使用帮助 service <service> ## mysqld 举例 $ service mysqld Usage: mysqld {start|stop|restart|reload|force-reload|status} [ MySQL server options ] # 启动、停止、重启指定服务 service <service> start|stop|restart ## mysqld举例restart,即先执行stop再执行start命令 $ service mysqld restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ] # 显示指定服务的状态 $ service mysqld status MySQL running (27390) [ OK ] # 显示所有服务的状态 service --status-all # 查看系统服务列表,以及每个服务的运行级别 chkconfig --list # 设置指定服务开机时是否自动启动 chkconfig <service> on|off # 以全屏幕文本界面设置服务开机时是否自动启动 # 必须以root启动,空格切换状态,tab切换按钮,上下鼠标移动光标 ntsysv
En plus d'utiliser l'exemple mysqld, lorsque nous modifions le nom d'hôte, l'adresse IP et d'autres informations, nous devons également redémarrer fréquemment le réseau pour prendre effet À ce stade, nous pouvons appeler :
service network status|restart
Utiliser le service pour gérer le service mysqld
Nous avons compris les connaissances de base, et maintenant nous pouvons commencer la transformation. le fichier mysql.server dans votre répertoire d'installation.
$ locate mysql.server /usr/local/mysql/support-files/mysql.server
Ce fichier est initialisé lors de l'installation. Il s'agit en fait d'un fichier de script qui prend en charge la saisie de différents paramètres pour exécuter différentes fonctions :
# 根据输入的命令执行不同的脚本,首先判断是否为start case "$mode" in 'start') # Start daemon # Safeguard (relative paths, core dumps..) cd $basedir echo $echo_n "Starting MySQL" # 查看该bin/mysqld_safe命令是否存在,如果不存在,就直接报错:找不到 if test -x $bindir/mysqld_safe then # Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. # 直接执行mysqld_safe命令,并传入参数,然后创建pid文件 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$? # Make lock for RedHat / SuSE if test -w "$lockdir" then touch "$lock_file_path" fi exit $return_value else log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)" fi ;; 'stop')
Puis copiez. dans le répertoire /tmp/init.d/ :
cp /usr/local/mysql/support-files/mysql.server /tmp/init.d/mysqld
À ce stade, vous pouvez appeler directement le service pour démarrer :
service mysqld start
Certains des problèmes rencontrés
La théorie ci-dessus est très simple, mais nous avons quand même rencontré quelques problèmes lors du processus de démarrage. Le moyen le plus simple de résoudre le problème est de visualiser le fichier journal sur Google+. Ces deux méthodes peuvent le localiser et le résoudre très rapidement.
Le fichier de configuration est ignoré
Regardez directement le message d'erreur au démarrage :
$ service mysqld start Warning: World-writable config file '/etc/my.cnf' is ignored Starting MySQL.Warning: World-writable config file '/etc/my.cnf' is ignored
Regardez directement la raison de l'erreur, qui indique que la configuration est globalement accessible en écriture les fichiers sont ignorés. Cette erreur signifie que le fichier de configuration peut être modifié par tous les utilisateurs, il existe donc une possibilité de falsification malveillante, donc la configuration de ce fichier ne sera pas introduite et ignorée.
La solution consiste à modifier le fichier pour qu'il soit lisible et inscriptible par les utilisateurs et les groupes d'utilisateurs, et uniquement lisible et non inscriptible par les autres utilisateurs :
chmod 664 /etc/my.cnf
Le fichier PID ne peut pas être créé
Afficher directement Message d'erreur :
$ service mysqld start Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid).
La raison de l'erreur montre qu'il s'est arrêté de manière inattendue au démarrage de MySQL
car le fichier PID
n'a pas été mis à jour.
Pour le moment, certaines personnes peuvent ne pas le comprendre. Cela n'a pas d'importance. Regardons directement le journal des erreurs :
2019-03-21 22:29:45 32896 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/usr/var/mysql/var/mysqld.pid' (Errcode: 2 - No such file or directory) 2019-03-21 22:29:45 32896 [ERROR] Can't start server: can't create PID file: No such file or directory
Ce journal indique clairement que le fichier mysqld.pid. ne peut pas être créé, il s'agit soit d'un problème d'autorisations, soit d'un problème de chemin qui n'existe pas. Plus tard, j'ai découvert que le chemin était mal écrit, il suffit donc de le remplacer par le chemin correct.
Paramétrage du chemin du journal des erreurs :
$ vim my.cnf [mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data pid-file = /usr/var/mysql/var/mysqld.pid log-error = /user/local/mysql/log/mysql.err
la commande log est abandonnée
Le problème ci-dessus est résolu. Nous continuons à exécuter et trouvons toujours le même message d'erreur, mais. le journal Le fichier est différent :
$ service mysqld start Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid). # 日志文件 2019-03-21 22:37:33 0 [ERROR] /usr/local/mysql/bin/mysqld: ambiguous option '--log=/usr/local/mysql/log/mysql.log' (log-bin, log_slave_updates) 2019-03-21 22:37:33 0 [ERROR] Aborting
J'ai trouvé le message d'erreur du journal : option vague --log, je ne comprends pas cela, vous pouvez voir la raison en recherchant sur Google : le --log La commande a été abandonnée depuis longtemps. Utilisez maintenant --general-log à la place. Modifiez simplement le fichier de configuration my.cnf :
$ vim my.cnf [mysqld] general-log = /user/local/mysql/log/mysql.log
Démarrer avec succès
Après avoir résolu les problèmes ci-dessus, il peut enfin être démarré avec succès. À ce stade, nous pouvons facilement démarrer et arrêter le. Service mysqld. Et rechargez :
$ service mysqld start Starting MySQL. [ OK ]
Résumé
L'outil de gestion des services peut nous aider à démarrer et arrêter rapidement les applications. Dans le processus de démarrage de MySQL, la maîtrise de l'affichage des fichiers journaux et de la recherche Google est pour nous la plus grande aide.
Cet article est terminé ici. Pour un contenu plus passionnant, vous pouvez prêter attention à la colonne Vidéo du didacticiel MySQL sur le site Web PHP chinois !
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!