Πώς να ενεργοποιήσετε την αυτόματη επανεκκίνηση του διακομιστή MySQL χρησιμοποιώντας το systemctl

36
Πώς να ενεργοποιήσετε την αυτόματη επανεκκίνηση του διακομιστή MySQL χρησιμοποιώντας το systemctl


Πώς να ενεργοποιήσετε την αυτόματη επανεκκίνηση του διακομιστή MySQL χρησιμοποιώντας το systemctl

Στο προηγούμενο blog, είδαμε πώς να εγκαταστήσετε Mysql 8 χειροκίνητα χρησιμοποιώντας Binaries Tar Κάντε κλικ εδώ για να διαβάσετε περισσότερα. Αν και αυτή η μέθοδος παρέχει πλήρη έλεγχο της διαδικασίας εγκατάστασης, δεν καταχωρεί το mysqld στο systemctl. Πρέπει λοιπόν να ξεκινήσουμε την υπηρεσία mysql χειροκίνητα με το βοηθητικό πρόγραμμα mysqld και σε περίπτωση επανεκκίνησης διακομιστή, οι υπηρεσίες mysql δεν θα ξεκινήσουν αυτόματα.

Σε αυτήν την ανάρτηση ιστολογίου, πρόκειται να εκτελέσουμε τα απαραίτητα βήματα για να εγγραφείτε mysqld με systemctl.

Προσθέστε ένα αρχείο διαμόρφωσης μονάδας υπηρεσιών systemd με λεπτομέρειες σχετικά με την υπηρεσία MySQL, Δημιουργία αρχείου mysqld.service μέσα στο φάκελο /usr/lib/systemd/system.

[[email protected] mysql]# cd /usr/lib/systemd/system
[[email protected] system]# touch mysqld.service
[[email protected] system]# chmod 644 mysqld.service

Επεξεργασία αρχείου mysqld.service αρχείο και προσθέστε παρακάτω πληροφορίες διαμόρφωσης. Βεβαιωθείτε ότι έχετε αντικαταστήσει την τιμή της παραμέτρου ExecStart με τη θέση του βοηθητικού προγράμματος mysqld, στην περίπτωσή μας το /u01/mysql-8/bin είναι η τοποθεσία.

[[email protected] system]# vi mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/u01/mysql-8/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

Ενεργοποιήστε το υπηρεσία mysqld για αυτόματη εκκίνηση κατά την επανεκκίνηση, εκτελέστε την παρακάτω εντολή.

[[email protected] system]# systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[[email protected] system]#

Τώρα είμαστε έτοιμοι να ξεκινήσουμε υπηρεσία mysql χρησιμοποιώντας systemctl εντολή, Πριν επιχειρήσετε, φροντίστε να σταματήσετε υπηρεσία mysql αν έχει ήδη τρέξει χειροκίνητα. Διαφορετικά, μπορείτε να λάβετε το παρακάτω σφάλμα κατά την έναρξη χρήσης systemctl εντολή.

2021-01-07T12:24:37.119945Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:38.122554Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:39.125029Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:40.128718Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:41.130795Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:42.132149Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2021-01-07T12:24:43.134906Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

Αρχή υπηρεσία mysql με systemctl εντολή. Και επιτρέπω υπηρεσία mysql για επανεκκίνηση μετά την επανεκκίνηση του διακομιστή.

[[email protected] system]# systemctl start mysqld
[[email protected] system]#
[[email protected] system]# ps -ef|grep mysqld
mysql      3665      1 11 15:25 ?        00:00:01 /u01/mysql-8/bin/mysqld --defaults-file=/etc/my.cnf
root       3711   2922  0 15:25 pts/2    00:00:00 grep --color=auto mysqld
[[email protected] system]#
[[email protected] lib]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[[email protected] lib]#

[[email protected] system]#
[[email protected] system]# systemctl status mysqld
â mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-01-07 15:25:14 +03; 47s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 3665 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           ââ3665 /u01/mysql-8/bin/mysqld --defaults-file=/etc/my.cnf

Jan 07 15:25:13 test-machine02 systemd[1]: Starting MySQL Server...
Jan 07 15:25:14 test-machine02 systemd[1]: Started MySQL Server.
[[email protected] system]#

Προσθήκη τοποθεσίας κάδου /u01/mysql-8/bin στο root user .bash_profile ώστε να μπορείτε να καλέσετε το mysql utiltiy απευθείας χωρίς να το χρησιμοποιήσετε εξαγωγή PATH=$PATH:/u01/mysql-8/bin

[[email protected] ~]# cd
[[email protected] ~]# cat  .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=$PATH:/u01/mysql-8/bin
export PATH

[[email protected] ~]# . .bash_profile
[[email protected] ~]#
[[email protected] ~]# mysql -hlocalhost -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status
--------------
mysql  Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          10
Current database:
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.22 MySQL Community Server - GPL
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /u01/mysql-8/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 13 min 30 sec

Threads: 4  Questions: 5  Slow queries: 0  Opens: 117  Flush tables: 3  Open tables: 38  Queries per second avg: 0.006
--------------

mysql>

Εάν λάβετε οποιοδήποτε σφάλμα στο systemctl εκκίνηση mysqldΕκτέλεση εντολής journalctl -xe για να δούμε ποια είναι η αιτία του σφάλματος. Στην περίπτωσή μου, είχα δώσει λάθος τοποθεσία mysqld χρησιμότητα.

[[email protected] system]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
[[email protected] system]#
[[email protected] system]#
[[email protected] system]# systemctl status mysqld.service
â mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Thu 2021-01-07 15:11:26 +03; 28s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3556 ExecStart=/u01/mysql-8/data/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS (code=exited, status=203/EXEC)
 Main PID: 3556 (code=exited, status=203/EXEC)

[[email protected] data]# journalctl -xe
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has finished shutting down.
Jan 07 15:11:26 test-machine02 systemd[1]: Starting MySQL Server...
-- Subject: Unit mysqld.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has begun starting up.
Jan 07 15:11:26 test-machine02 systemd[3556]: Failed at step EXEC spawning /u01/mysql-8/data/bin/mysqld: No such file or directory
-- Subject: Process /u01/mysql-8/data/bin/mysqld could not be executed

Αναφ.: https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-post-install.html

Κάντε κλικ εδώ για εγκατάσταση βάσης δεδομένων MySql 8 με χρήση της μεθόδου Yum Repository.
Κάντε κλικ εδώ για Βήμα προς Βήμα Βάση Δεδομένων Εγκατάσταση MySql 8 με χρήση δυαδικών αρχείων.

Αυτό το έγγραφο είναι μόνο για μαθησιακό σκοπό και επικυρώνεται πάντα στο περιβάλλον LAB πρώτα πριν από την εφαρμογή στο περιβάλλον LIVE.


Ελπίζω να σας αρέσει αυτό το άρθρο!
Μοιραστείτε τα πολύτιμα σχόλια/σχόλιά σας/εγγραφείτε και ακολουθήστε μας παρακάτω και μην ξεχάσετε να κάνετε κλικ στο εικονίδιο του κουδουνιού για να λάβετε την πιο πρόσφατη ενημέρωση.
Κάντε κλικ εδώ για να κατανοήσετε περισσότερα για την επιδίωξή μας.

2,702 Συνολικές προβολές, 4 Προβολές Σήμερα

παρόμοιες αναρτήσεις

Schreibe einen Kommentar