Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

centos:mariadb [20.02.2017 17:37. ]
django MariaDB [erster Start] #MariaDB #CentOS7
centos:mariadb [22.07.2019 14:52. ]
Zeile 1: Zeile 1:
-====== MariaDB Datenbankserver unter CentOS 7.x ====== 
-{{:centos:mariadb-seal-shaded-browntext.png?nolink&300 |Bild: MariaDB Logo}} Nachdem [[http://www.oracle.com/de/index.html|Oracle]] die Firma [[http://de.wikipedia.org/wiki/Sun_Microsystems|Sun Microsystems]] im Jahr 2009 [[http://www.golem.de/0904/66578.html|aufkaufte]], entschloss sich der Hauptentwickler [[http://monty-says.blogspot.de/|Ulf Michael Widenius]] der OpenSource Datenbank  
-[[http://www.mysql.de|mySQL]] als eigenständigen Fork weiter zu entwickeln. Für das neue relationales Open-Source-Datenbankverwaltungssystem, welcher grundsätzlich zu MySQL kompatibel ist, wählte Widenius den Namen MariaDB((in Anlehnung an den Vornamen seiner Tochter)). Im [[http://www.informatik-aktuell.de/betrieb/datenbanken/mariadb-als-strategische-entscheidung.html|folgenden Artikel]] findet man tiefergehende Informationen zu den Unterschieden beider Datenbank-Daemon. 
  
-MariaDB löste mit CentOS7 die bis dahin verwendete MYSQL-Datenbank ab. Wir werden uns in diesem Kapitel mit der Installation von MariaDB beschäftigen, nicht zuletzt, da wir die Datenbank für die viele unserer Projekte verwenden werden, wie z.B.: 
-  * [[voip:start|Asterisk]] 
-  * [[centos:cacti_-_installation_und_konfiguration|cacti]] 
-  * [[fun:energie-funk-mess-system_em_1000|fhem]] 
-  * [[centos:mailserver:horde_-_create._communicate._collaborate|horde]] 
-  * [[wetter:wview:start|wview]] 
-  * [[centos:piwik|Piwik]] 
-  * [[centos:web_c7:nextcloud|Nextcloud]] 
- 
-===== Installation ===== 
-Die Installation unseres Datenbankservers gestaltet sich recht einfach, das das notwendige Programmpaket als RPM aus dem Base-Repository unserer CentOS-Installation zur Verfügung gestellt wird. 
-Die Installation selbst erfolgt mit dem Paketverwaltungs-Utility **yum** von CentOS 7. 
-   # yum install mariadb-server -y 
- 
-Neben dem Server-Part **mysql-server** wird auch der Client-Part **mysql** sowie weitere Perl-Datenbankmodule installiert.  
-Was uns die einzelnen Programmpakete mitbringen, erkunden wir bei Bedarf mit der Option //**qil**// beim Programm **rpm**.  
-   # rpm -qil mysql-server 
- 
-<code>Name        : mariadb-server 
-Epoch       : 1 
-Version     : 5.5.52 
-Release     : 1.el7 
-Architecture: x86_64 
-Install Date: Mon 20 Feb 2017 06:20:37 PM CET 
-Group       : Applications/Databases 
-Size        : 58204272 
-License     : GPLv2 with exceptions and LGPLv2 and BSD 
-Signature   : RSA/SHA256, Sun 20 Nov 2016 08:24:51 PM CET, Key ID 24c6a8a7f4a80eb5 
-Source RPM  : mariadb-5.5.52-1.el7.src.rpm 
-Build Date  : Tue 15 Nov 2016 02:20:59 AM CET 
-Build Host  : c1bm.rdu2.centos.org 
-Relocations : (not relocatable) 
-Packager    : CentOS BuildSystem <http://bugs.centos.org> 
-Vendor      : CentOS 
-URL         : http://mariadb.org 
-Summary     : The MariaDB server and related files 
-Description : 
-MariaDB is a multi-user, multi-threaded SQL database server. It is a 
-client/server implementation consisting of a server daemon (mysqld) 
-and many different client programs and libraries. This package contains 
-the MariaDB server and some accompanying files and directories. 
-MariaDB is a community developed branch of MySQL. 
-/etc/logrotate.d/mariadb 
-/etc/my.cnf.d/server.cnf 
-/usr/bin/innochecksum 
-/usr/bin/myisam_ftdump 
-/usr/bin/myisamchk 
-/usr/bin/myisamlog 
-/usr/bin/myisampack 
-/usr/bin/mysql_convert_table_format 
-/usr/bin/mysql_fix_extensions 
-/usr/bin/mysql_install_db 
-/usr/bin/mysql_plugin 
-/usr/bin/mysql_secure_installation 
-/usr/bin/mysql_setpermission 
-/usr/bin/mysql_tzinfo_to_sql 
-/usr/bin/mysql_upgrade 
-/usr/bin/mysql_zap 
-/usr/bin/mysqlbug 
-/usr/bin/mysqld_multi 
-/usr/bin/mysqld_safe 
-/usr/bin/mysqldumpslow 
-/usr/bin/mysqlhotcopy 
-/usr/bin/mysqltest 
-/usr/bin/perror 
-/usr/bin/replace 
-/usr/bin/resolve_stack_dump 
-/usr/bin/resolveip 
-/usr/lib/systemd/system/mariadb.service 
-/usr/lib/tmpfiles.d/mariadb.conf 
-/usr/lib64/mysql/INFO_BIN 
-/usr/lib64/mysql/INFO_SRC 
-/usr/lib64/mysql/mysqlbug 
-/usr/lib64/mysql/plugin 
-/usr/lib64/mysql/plugin/adt_null.so 
-/usr/lib64/mysql/plugin/auth_0x0100.so 
-/usr/lib64/mysql/plugin/auth_pam.so 
-/usr/lib64/mysql/plugin/auth_socket.so 
-/usr/lib64/mysql/plugin/auth_test_plugin.so 
-/usr/lib64/mysql/plugin/daemon_example.ini 
-/usr/lib64/mysql/plugin/dialog_examples.so 
-/usr/lib64/mysql/plugin/ha_innodb.so 
-/usr/lib64/mysql/plugin/ha_sphinx.so 
-/usr/lib64/mysql/plugin/handlersocket.so 
-/usr/lib64/mysql/plugin/libdaemon_example.so 
-/usr/lib64/mysql/plugin/mypluglib.so 
-/usr/lib64/mysql/plugin/qa_auth_client.so 
-/usr/lib64/mysql/plugin/qa_auth_interface.so 
-/usr/lib64/mysql/plugin/qa_auth_server.so 
-/usr/lib64/mysql/plugin/query_cache_info.so 
-/usr/lib64/mysql/plugin/semisync_master.so 
-/usr/lib64/mysql/plugin/semisync_slave.so 
-/usr/lib64/mysql/plugin/server_audit.so 
-/usr/lib64/mysql/plugin/sphinx.so 
-/usr/lib64/mysql/plugin/sql_errlog.so 
-/usr/libexec/mariadb-prepare-db-dir 
-/usr/libexec/mariadb-wait-ready 
-/usr/libexec/mysqld 
-/usr/share/man/man1/innochecksum.1.gz 
-/usr/share/man/man1/msql2mysql.1.gz 
-/usr/share/man/man1/myisam_ftdump.1.gz 
-/usr/share/man/man1/myisamchk.1.gz 
-/usr/share/man/man1/myisamlog.1.gz 
-/usr/share/man/man1/myisampack.1.gz 
-/usr/share/man/man1/mysql.server.1.gz 
-/usr/share/man/man1/mysql_convert_table_format.1.gz 
-/usr/share/man/man1/mysql_fix_extensions.1.gz 
-/usr/share/man/man1/mysql_install_db.1.gz 
-/usr/share/man/man1/mysql_plugin.1.gz 
-/usr/share/man/man1/mysql_secure_installation.1.gz 
-/usr/share/man/man1/mysql_setpermission.1.gz 
-/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz 
-/usr/share/man/man1/mysql_upgrade.1.gz 
-/usr/share/man/man1/mysql_zap.1.gz 
-/usr/share/man/man1/mysqlbinlog.1.gz 
-/usr/share/man/man1/mysqlbug.1.gz 
-/usr/share/man/man1/mysqlcheck.1.gz 
-/usr/share/man/man1/mysqld_multi.1.gz 
-/usr/share/man/man1/mysqld_safe.1.gz 
-/usr/share/man/man1/mysqldumpslow.1.gz 
-/usr/share/man/man1/mysqlhotcopy.1.gz 
-/usr/share/man/man1/mysqlimport.1.gz 
-/usr/share/man/man1/mysqltest.1.gz 
-/usr/share/man/man1/perror.1.gz 
-/usr/share/man/man1/replace.1.gz 
-/usr/share/man/man1/resolve_stack_dump.1.gz 
-/usr/share/man/man1/resolveip.1.gz 
-/usr/share/man/man8/mysqld.8.gz 
-/usr/share/mysql/README.mysql-cnf 
-/usr/share/mysql/errmsg-utf8.txt 
-/usr/share/mysql/fill_help_tables.sql 
-/usr/share/mysql/my-huge.cnf 
-/usr/share/mysql/my-innodb-heavy-4G.cnf 
-/usr/share/mysql/my-large.cnf 
-/usr/share/mysql/my-medium.cnf 
-/usr/share/mysql/my-small.cnf 
-/usr/share/mysql/mysql_performance_tables.sql 
-/usr/share/mysql/mysql_system_tables.sql 
-/usr/share/mysql/mysql_system_tables_data.sql 
-/usr/share/mysql/mysql_test_data_timezone.sql 
-/var/lib/mysql 
-/var/log/mariadb 
-/var/log/mariadb/mariadb.log 
-/var/run/mariadb</code> 
- 
-===== Konfiguration ===== 
-==== my.cnf ==== 
-Die Konfiguration unseres Datenbankservers erfolgt über die Konfigurationsdatei //**/etc/my.cnf**//, die uns bei der Installation bereits mitgeliefert wurde.  
-   # less /etc/my.cnf 
-<file bash /etc/my.cnf>[mysqld] 
-datadir=/var/lib/mysql 
-socket=/var/lib/mysql/mysql.sock 
-# Disabling symbolic-links is recommended to prevent assorted security risks 
-symbolic-links=0 
-# Settings user and group are ignored when systemd is used. 
-# If you need to run mysqld under a different user or group, 
-# customize your systemd unit file for mariadb according to the 
-# instructions in http://fedoraproject.org/wiki/Systemd 
- 
-[mysqld_safe] 
-log-error=/var/log/mariadb/mariadb.log 
-pid-file=/var/run/mariadb/mariadb.pid 
- 
-# 
-# include all files from the config directory 
-# 
-!includedir /etc/my.cnf.d 
-</file> 
-Eine genau Beschreibung aller Server System Variablen ist [[https://mariadb.com/kb/en/mariadb/server-system-variables/|hier]] zu finden. 
- 
-Zusätzliche Beispiele finden sich übrigens auch im Verzeichnis //**/usr/share/mysql/**//. 
-   # ll /usr/share/mysql/*.cnf 
-<code>-rw-r--r--. 1 root root  4920 Nov 15 00:14 /usr/share/mysql/my-huge.cnf 
--rw-r--r--. 1 root root 20438 Nov 15 00:14 /usr/share/mysql/my-innodb-heavy-4G.cnf 
--rw-r--r--. 1 root root  4907 Nov 15 00:14 /usr/share/mysql/my-large.cnf 
--rw-r--r--. 1 root root  4920 Nov 15 00:14 /usr/share/mysql/my-medium.cnf 
--rw-r--r--. 1 root root  2846 Nov 15 00:14 /usr/share/mysql/my-small.cnf 
-</code> 
- 
-Bei Bedarf, wie z.B. der Angabe eines spezifischen Datenbankverzeichnisses, tragen wir unsere individuelle Konfiguration in der **my.cnf** nach. 
-<code>[mysqld] 
-# Django : 2015-02-07 spezifisches Datenbankverzeichnis angegeben 
-# default: datadir=/var/lib/mysql 
-datadir=/var/lib/mysql/data 
-... 
-</code> 
- 
-==== erster Start ==== 
-Nun ist es an der Zeit unseren Datenbank-Server das erste mal zu starten. 
-   # systemctl start mariadb.service 
- 
-Der Start wird im Logfile des Datenbankservers //**/var/log/mariadb/mariadb.log**// entsprechend dokumentiert. 
-   # less /var/log/mariadb/mariadb.log 
-<code>170220 18:25:10 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
-170220 18:25:10 [Note] /usr/libexec/mysqld (mysqld 5.5.52-MariaDB) starting as process 3256 ... 
-170220 18:25:10 InnoDB: The InnoDB memory heap is disabled 
-170220 18:25:10 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
-170220 18:25:10 InnoDB: Compressed tables use zlib 1.2.7 
-170220 18:25:10 InnoDB: Using Linux native AIO 
-170220 18:25:10 InnoDB: Initializing buffer pool, size = 128.0M 
-170220 18:25:10 InnoDB: Completed initialization of buffer pool 
-InnoDB: The first specified data file ./ibdata1 did not exist: 
-InnoDB: a new database to be created! 
-170220 18:25:10  InnoDB: Setting file ./ibdata1 size to 10 MB 
-InnoDB: Database physically writes the file full: wait... 
-170220 18:25:10  InnoDB: Log file ./ib_logfile0 did not exist: new to be created 
-InnoDB: Setting log file ./ib_logfile0 size to 5 MB 
-InnoDB: Database physically writes the file full: wait... 
-170220 18:25:10  InnoDB: Log file ./ib_logfile1 did not exist: new to be created 
-InnoDB: Setting log file ./ib_logfile1 size to 5 MB 
-InnoDB: Database physically writes the file full: wait... 
-InnoDB: Doublewrite buffer not found: creating new 
-InnoDB: Doublewrite buffer created 
-InnoDB: 127 rollback segment(s) active. 
-InnoDB: Creating foreign key constraint system tables 
-InnoDB: Foreign key constraint system tables created 
-170220 18:25:11  InnoDB: Waiting for the background threads to start 
-170220 18:25:12 Percona XtraDB (http://www.percona.com) 5.5.49-MariaDB-38.0 started; log sequence number 0 
-170220 18:25:12 [Note] Plugin 'FEEDBACK' is disabled. 
-170220 18:25:12 [Note] Server socket created on IP: '0.0.0.0'. 
-170220 18:25:12 [Note] Event Scheduler: Loaded 0 events 
-170220 18:25:12 [Note] /usr/libexec/mysqld: ready for connections. 
-Version: '5.5.52-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server 
-</code> 
- 
-In unserem Datenbankverzeichnis //**/var/lib/mysql/data**// wurden auch die ersten Datenbankdateien angelegt. 
-   # ll /var/lib/mysql/data 
- 
-<code>total 28700 
--rw-rw----. 1 mysql mysql    16384 Mar  7 22:10 aria_log.00000001 
--rw-rw----. 1 mysql mysql       52 Mar  7 22:10 aria_log_control 
--rw-rw----. 1 mysql mysql 18874368 Mar  7 22:10 ibdata1 
--rw-rw----. 1 mysql mysql  5242880 Mar  7 22:10 ib_logfile0 
--rw-rw----. 1 mysql mysql  5242880 Mar  7 22:10 ib_logfile1 
-drwx------. 2 mysql mysql     4096 Mar  7 22:10 mysql 
-srwxrwxrwx. 1 mysql mysql        0 Mar  7 22:10 mysql.sock 
-drwx------. 2 mysql mysql     4096 Mar  7 22:10 performance_schema 
-drwx------. 2 mysql mysql        6 Mar  7 22:10 test 
-</code> 
- 
- 
- 
-Möchten wir überprüfen, ob der MariaDB-Server läuft, haben wir mehrere Möglichkeiten. 
-  - **systemctl** \\ <code> # systemctl status mariadb -l</code> <html><pre class="code"> 
-<font style="color: rgb(0, 255, 0)"><b>● </b></font><font style="color: rgb(0, 0, 0)">mariadb.service - MariaDB database server 
-   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) 
-   Active: <font style="color: rgb(0, 255, 0)"><b>active (running) </b></font><font style="color: rgb(0, 0, 0)">since Mon 2017-02-20 18:25:12 CET; 1min 6s ago 
-  Process: 3099 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) 
-  Process: 3019 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) 
- Main PID: 3098 (mysqld_safe) 
-   CGroup: /system.slice/mariadb.service 
-           ├─3098 /bin/sh /usr/bin/mysqld_safe --basedir=/usr 
-           └─3256 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock 
- 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: To start mysqld at boot time you have to copy 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: support-files/mysql.server to the right place for your system 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER ! 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: To do so, start the server, then issue the following commands: 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: '/usr/bin/mysqladmin' -u root password 'new-password' 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: '/usr/bin/mysqladmin' -u root -h vml000117.dmz.nausch.org password 'new-password' 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mariadb-prepare-db-dir[3019]: Alternatively you can run: 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mysqld_safe[3098]: 170220 18:25:10 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. 
-Feb 20 18:25:10 vml000117.dmz.nausch.org mysqld_safe[3098]: 170220 18:25:10 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
-Feb 20 18:25:12 vml000117.dmz.nausch.org systemd[1]: Started MariaDB database server.</font> 
-</pre></html> 
-  - **ps** \\ <code> # ps aux | grep mysql</code><code>mysql    27039  0.0  0.1 115344  1620 ?        Ss   22:10   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr 
-mysql    27198  0.0  8.3 905348 84784 ?        Sl   22:10   0:01 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql/data --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock 
-root     27302  0.0  0.0 112640   924 pts/0    R+   22:41   0:00 grep --color=auto mysql</code> 
-  - **netstat** \\ <code> # netstat -tulpn</code><code>Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     
-tcp        0      0 127.0.0.1:25            0.0.0.0:              LISTEN      1728/master          
-tcp        0      0 0.0.0.0:3306            0.0.0.0:              LISTEN      27198/mysqld         
-tcp        0      0 0.0.0.0:22              0.0.0.0:              LISTEN      1357/sshd            
-tcp6            0 ::1:25                  :::*                    LISTEN      1728/master          
-tcp6            0 :::80                   :::                   LISTEN      26249/httpd          
-tcp6            0 :::22                   :::                   LISTEN      1357/sshd            
-udp        0      0 0.0.0.0:40525           0.0.0.0:                          571/avahi-daemon: 
-udp        0      0 0.0.0.0:52944           0.0.0.0:                          588/chronyd          
-udp        0      0 0.0.0.0:5353            0.0.0.0:                          571/avahi-daemon: 
-udp        0      0 127.0.0.1:323           0.0.0.0:                          588/chronyd          
-</code> 
- 
-==== automatisches Starten des Dienste beim Systemstart ====  
-Damit nun unser MariaDBL-Server beim Booten automatisch gestartet wird, nehmen wir noch folgenden Konfigurationsschritt vor. 
-   # systemctl enable mariadb 
- 
-   ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service' 
- 
-Wollen wir überprüfen, ob der Datenbank-Daemon beim Serverstart automatisch gestartet wird, fragen wir dies mit folgendem Befehl ab. 
-   # systemctl is-enabled mariadb 
- 
-   enabled 
- 
-Startet der Datenbank-Daemon nicht automatisch, wird ein **disabled** zurück gemeldet. 
- 
-==== Paketfilter/Firewall ==== 
-Damit wir später von den berechtigten Hosts Verbindungen zu unserem MariaDB-Server/-Daemon aufbauen können, müssen wir für diese noch Änderungen am Paketfilter **firewalld** vornehmen. 
- 
-Unter **CentOS 7** wird als Standard-Firewall die dynamische **firewalld** verwendet. Ein großer Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbindungen kurz getrennt werden. Sondern unsere Änderungen können **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden. 
- 
-In unserem Konfigurationsbeispiel hat unser MariaDB-Server die IP-Adresse 10.0.0.37 und der [[wetter:start|Wetterstations-Server]] die 10.0.0.27. Wir brauchen also eine Firewall-Definition, die ausschließlich Verbindungen von der **Source-IP** 10.0.0.27 auf die **Destination-IP** 10.0.0.37 auf Port **3306** gestattet. 
-Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public**, dies entspricht in unserem Beispiel das Netzwerk-Interface **eth0** mit der IP **10.0.0.37** an. Als Source-IP geben wir die IP-Adresse unseres Wetterstations-Servers also die **10.0.0.27** an. Genug der Vorrede, mit nachfolgendem Befehl wird diese restriktive Regel angelegt. 
-   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.27/32" port protocol="tcp" port="3306" destination address="10.0.0.37/32" accept" 
- 
-Zum Aktivieren brauchen wir nun nur einen reload des Firewall-Daemon vornehmen. 
-   # firewall-cmd --reload 
- 
-Fragen wir nun den Regelsatz unserer **iptables**-basieten Firewall ab, finden wir in der Chain **IN_public_allow** unsere aktive Regel. 
-   # iptables -nvL IN_public_allow 
- 
-<code>Chain IN_public_allow (1 references) 
- pkts bytes target     prot opt in     out     source               destination          
-  10K   25K ACCEPT     tcp  --  *      *       10.0.0.27            10.0.0.37            tcp dpt:3306 ctstate NEW 
- 2656  159K ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           tcp dpt:22 ctstate NEW 
-</code> 
- 
-Natürlich können wir auch mit dem Befehl **firewall-cmd** abfragen, welche Dienste in der Zone **public** geöffnet sind. 
- 
-   # firewall-cmd --zone=public --list-services 
- 
-   mysql ssh 
- 
-==== Installation absichern ==== 
-Wie bei der doch großen Ausgabe beim erstmaligen Start des Datenbank-Daemons angeraten, werden wir nun die __sicherheitsrelevanten Konfigurationsänderungen__ vornehmen. 
- 
-Hierzu benutzen wir einfach das mitgelieferte Script //**/usr/bin/mysql_secure_installation**//, welches folgende Änderungen vornimmt: 
- 
-  - Datenbankpasswort des MySQL-Datenbankuser **root** setzen 
-  - Anonyme Benutzerkonten löschen 
-  - Deaktivieren der Remote-Zugriffsmöglichkeit für den MySQL-Datenbankuser **root** 
-  - Löschen der nicht benötigten Testdatenbank **test** 
- 
-<WRAP center round info 85%> 
-Die Fehlermeldung <code>/bin/mysql_secure_installation: line 379: find_mysql_client: command not found</code> kann ignoriert werden, da aktuell((Stand: März 2015)) in dem Script das Unterprogramm **find_mysql_client** nicht definiert wurde. 
-</WRAP> 
- 
- 
-   # mysql_secure_installation 
-<code>/bin/mysql_secure_installation: line 379: find_mysql_client: command not found 
- 
-NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB 
-      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY! 
- 
-In order to log into MariaDB to secure it, we'll need the current 
-password for the root user.  If you've just installed MariaDB, and 
-you haven't set the root password yet, the password will be blank, 
-so you should just press enter here. 
- 
-Enter current password for root (enter for none):  
-OK, successfully used password, moving on... 
- 
-Setting the root password ensures that nobody can log into the MariaDB 
-root user without the proper authorisation. 
- 
-Set root password? [Y/n]</code> 
-   y 
- 
-   New password:  
- 
-   Re-enter new password:  
-<code>Password updated successfully! 
-Reloading privilege tables.. 
- ... Success! 
- 
- 
-By default, a MariaDB installation has an anonymous user, allowing anyone 
-to log into MariaDB without having to have a user account created for 
-them.  This is intended only for testing, and to make the installation 
-go a bit smoother.  You should remove them before moving into a 
-production environment. 
- 
-Remove anonymous users? [Y/n]</code> 
-   y 
-<code> ... Success! 
- 
-Normally, root should only be allowed to connect from 'localhost' This 
-ensures that someone cannot guess at the root password from the network. 
- 
-Disallow root login remotely? [Y/n]</code> 
-   y 
-<code> ... Success! 
- 
-By default, MariaDB comes with a database named 'test' that anyone can 
-access.  This is also intended only for testing, and should be removed 
-before moving into a production environment. 
- 
-Remove test database and access to it? [Y/n]</code> 
-   y 
-<code> - Dropping test database... 
- ... Success! 
- - Removing privileges on test database... 
- ... Success! 
- 
-Reloading the privilege tables will ensure that all changes made so far 
-will take effect immediately. 
- 
-Reload privilege tables now? [Y/n]</code> 
-   y 
- 
-<code> ... Success! 
- 
-Cleaning up... 
- 
-All done!  If you've completed all of the above steps, your MariaDB 
-installation should now be secure. 
- 
-Thanks for using MariaDB! 
-</code> 
- 
-==== logrotate ==== 
-Bei einem unter Last stehendem MariaDB-Sserver kann unter Umständen das zugehörige Logfile //**/var/log/mariadb/mariadb.log**// recht schnell anwachsen. In der Datei **mariadb** aus dem Verzeichis //**/etc**// finden wir dazu alle nötigen Informationen. 
-   # less /etc/logrotate.d/mariadb 
- 
-<code># This logname can be set in /etc/my.cnf 
-# by setting the variable "log-error" 
-# in the [mysqld_safe] section as follows: 
-# 
-# [mysqld_safe] 
-# log-error=/var/log/mariadb/mariadb.log 
-# 
-# If the root user has a password you have to create a 
-# /root/.my.cnf configuration file with the following 
-# content: 
-# 
-# [mysqladmin] 
-# password = <secret>  
-# user= root 
-# 
-# where "<secret>" is the password.  
-# 
-# ATTENTION: This /root/.my.cnf should be readable ONLY 
-# for root ! 
- 
-# Then, un-comment the following lines to enable rotation of mysql's log file: 
- 
-#/var/log/mariadb/mariadb.log { 
-#        create 640 mysql mysql 
-#        notifempty 
-#       daily 
-#        rotate 3 
-#        missingok 
-#        compress 
-#    postrotate 
-#       # just if mysqld is really running 
-#       if test -x /usr/bin/mysqladmin && \ 
-#          /usr/bin/mysqladmin ping &>/dev/null 
-#       then 
-#          /usr/bin/mysqladmin flush-logs 
-#       fi 
-#    endscript 
-#} 
-</code> 
- 
-In der MariaDB-Konfigurationsdatei //**/etc/my.cnf**// aus dem RPM ist in der Sektion **[mysqld_safe]** das Error-Log gesetzt:  
-   log-error=/var/log/mariadb/mariadb.log 
- 
-Da wir dem im Kapitel [[centos:mariadb#installation_absichern]] für den User **root** ein Passwort vergeben haben, werden wir nun die Authentifizierungsdaten im Verzeichnis des Users **root** ablegen. Hierzu legen wir erst einmal diese Datei an. 
-   # touch /root/.my.cnf 
- 
-Anschließend stellen wir sicher dass auch wirklich nur **root** diese Datei lesen kann. 
-   # chmod 600 /root/.my.cnf 
- 
-Bevor wir die Daten in der gerade angelegten Datei hinterlegen, überprüfen wir noch, ob auch wirklich die Berechtigungen passen. 
-   # ll /root/.my.cnf  
- 
-<code>-rw-------. 1 root root 0 Mar  8 00:15 /root/.my.cnf</code> 
- 
-Da alles passt, befüllen wir nun die Datei //**/root/.my.cnf**//. 
-   # vim /root/.my.cnf  
-<file bash /root/.my.cnf>[mysqladmin] 
-password = dxiFHdig10JXyRAec74j7bcPdyVGX9I1BxcYcoFs 
-user= root 
-</file> 
- 
-Nun aktivieren wir noch in der Datei //**/etc/logrotate.d/mariadb**// die Zeilen in der unteren Hälfte, damit der logrotate-Mechanismus auch scharf geschalten ist. 
-   # vim /etc/logrotate.d/mariadb 
- 
-<file bash /etc/logotate.d/mariadb># This logname can be set in /etc/my.cnf 
-# by setting the variable "log-error" 
-# in the [mysqld_safe] section as follows: 
-# 
-# [mysqld_safe] 
-# log-error=/var/log/mariadb/mariadb.log 
-# 
-# If the root user has a password you have to create a 
-# /root/.my.cnf configuration file with the following 
-# content: 
-# 
-# [mysqladmin] 
-# password = <secret>  
-# user= root 
-# 
-# where "<secret>" is the password.  
-# 
-# ATTENTION: This /root/.my.cnf should be readable ONLY 
-# for root ! 
- 
-# Then, un-comment the following lines to enable rotation of mysql's log file: 
- 
-# Django : 2015-03-08 
-# logrotate aktiviert 
-/var/log/mariadb/mariadb.log { 
-        create 640 mysql mysql 
-        notifempty 
-        daily 
-        rotate 3 
-        missingok 
-        compress 
-    postrotate 
-        # just if mysqld is really running 
-        if test -x /usr/bin/mysqladmin && \ 
-           /usr/bin/mysqladmin ping &>/dev/null 
-        then 
-           /usr/bin/mysqladmin flush-logs 
-        fi 
-    endscript 
-} 
-</file> 
- 
-===== Datenbankhandling ===== 
-==== mysqladmin ==== 
-Mit Hilfe des Hilfsprogrammes **mysqladmin** aus dem Clientpaket **mysql** können umfangreiche Abfrage gegen unsere Datenbank gefahren werden. Startet man das Programm ohne weitere Angaben von Optionen, werden die möglichen Optionen am Bildschirm ausgegeben. 
-   # mysqladmin 
- 
-<code>mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64 
-Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. 
- 
-Administration program for the mysqld daemon. 
-Usage: mysqladmin [OPTIONS] command command.... 
- 
-Default options are read from the following files in the given order: 
-/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf  
-The following groups are read: mysqladmin client client-server client-mariadb 
-The following options may be given as the first argument: 
---print-defaults        Print the program argument list and exit. 
---no-defaults           Don't read default options from any option file. 
---defaults-file=#       Only read default options from the given file #. 
---defaults-extra-file=# Read this file after the global files are read. 
- 
-  -c, --count=#       Number of iterations to make. This works with -i 
-                      (--sleep) only. 
-  --debug-check       Check memory and open file usage at exit. 
-  --debug-info        Print some debug info at exit. 
-  -f, --force         Don't ask for confirmation on drop database; with 
-                      multiple commands, continue even if an error occurs. 
-  -C, --compress      Use compression in server/client protocol. 
-  --character-sets-dir=name  
-                      Directory for character set files. 
-  --default-character-set=name  
-                      Set the default character set. 
-  -?, --help          Display this help and exit. 
-  -h, --host=name     Connect to host. 
-  -b, --no-beep       Turn off beep on error. 
-  -p, --password[=name]  
-                      Password to use when connecting to server. If password is 
-                      not given it's asked from the tty. 
-  -P, --port=#        Port number to use for connection or 0 for default to, in 
-                      order of preference, my.cnf, $MYSQL_TCP_PORT, 
-                      /etc/services, built-in default (3306). 
-  --protocol=name     The protocol to use for connection (tcp, socket, pipe, 
-                      memory). 
-  -r, --relative      Show difference between current and previous values when 
-                      used with -i. Currently only works with extended-status. 
-  -s, --silent        Silently exit if one can't connect to server. 
-  -S, --socket=name   The socket file to use for connection. 
-  -i, --sleep=#       Execute commands repeatedly with a sleep between. 
-  --ssl               Enable SSL for connection (automatically enabled with 
-                      other flags). 
-  --ssl-ca=name       CA file in PEM format (check OpenSSL docs, implies 
-                      --ssl). 
-  --ssl-capath=name   CA directory (check OpenSSL docs, implies --ssl). 
-  --ssl-cert=name     X509 cert in PEM format (implies --ssl). 
-  --ssl-cipher=name   SSL cipher to use (implies --ssl). 
-  --ssl-key=name      X509 key in PEM format (implies --ssl). 
-  --ssl-verify-server-cert  
-                      Verify server's "Common Name" in its cert against 
-                      hostname used when connecting. This option is disabled by 
-                      default. 
-  -u, --user=name     User for login if not current user. 
-  -v, --verbose       Write more information. 
-  -V, --version       Output version information and exit. 
-  -E, --vertical      Print output vertically. Is similar to --relative, but 
-                      prints output vertically. 
-  -w, --wait[=#     Wait and retry if connection is down. 
-  --connect-timeout=#  
-  --shutdown-timeout=#  
-  --plugin-dir=name   Directory for client-side plugins. 
-  --default-auth=name Default authentication client-side plugin to use. 
- 
-Variables (--variable-name=value) 
-and boolean options {FALSE|TRUE}  Value (after reading options) 
---------------------------------- ---------------------------------------- 
-count                             0 
-debug-check                       FALSE 
-debug-info                        FALSE 
-force                             FALSE 
-compress                          FALSE 
-character-sets-dir                (No default value) 
-default-character-set             auto 
-host                              (No default value) 
-no-beep                           FALSE 
-port                              0 
-relative                          FALSE 
-socket                            (No default value) 
-sleep                             0 
-ssl                               FALSE 
-ssl-ca                            (No default value) 
-ssl-capath                        (No default value) 
-ssl-cert                          (No default value) 
-ssl-cipher                        (No default value) 
-ssl-key                           (No default value) 
-ssl-verify-server-cert            FALSE 
-user                              root 
-verbose                           FALSE 
-vertical                          FALSE 
-connect-timeout                   43200 
-shutdown-timeout                  3600 
-plugin-dir                        (No default value) 
-default-auth                      (No default value) 
- 
-Where command is a one or more of: (Commands may be shortened) 
-  create databasename     Create a new database 
-  debug                   Instruct server to write debug information to log 
-  drop databasename       Delete a database and all its tables 
-  extended-status         Gives an extended status message from the server 
-  flush-all-statistics    Flush all statistics tables 
-  flush-all-status        Flush status and statistics 
-  flush-client-statistics Flush client statistics 
-  flush-hosts             Flush all cached hosts 
-  flush-index-statistics  Flush index statistics 
-  flush-logs              Flush all logs 
-  flush-privileges        Reload grant tables (same as reload) 
-  flush-slow-log          Flush slow query log 
-  flush-status            Clear status variables 
-  flush-table-statistics  Clear table statistics 
-  flush-tables            Flush all tables 
-  flush-threads           Flush the thread cache 
-  flush-user-statistics   Flush user statistics 
-  kill id,id,...        Kill mysql threads 
-  password [new-password] Change old password to new-password in current format 
-  old-password [new-password] Change old password to new-password in old format 
-  ping                  Check if mysqld is alive 
-  processlist           Show list of active threads in server 
-  reload                Reload grant tables 
-  refresh               Flush all tables and close and open logfiles 
-  shutdown              Take server down 
-  status                Gives a short status message from the server 
-  start-slave           Start slave 
-  stop-slave            Stop slave 
-  variables             Prints variables available 
-  version               Get version info from server 
-</code> 
- 
-So können wir z.B. die verwendete Version von **MariaDB** abfragen. 
-   # mysqladmin version 
- 
-<code>mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64 
-Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. 
- 
-Server version          5.5.41-MariaDB 
-Protocol version        10 
-Connection              Localhost via UNIX socket 
-UNIX socket             /var/lib/mysql/mysql.sock 
-Uptime:                 2 hours 33 min 19 sec 
- 
-Threads: 1  Questions: 27  Slow queries: 0  Opens: 1  Flush tables: 2  Open tables: 27  Queries per second avg: 0.002 
-</code> 
- 
-==== mysql ==== 
-Der Zugriff auf unseren MariaDB-Server nehmen wir in der Regel mit dem Werkzeug **mysql** vor. So können wir z.B. sehr leicht und einfach den Status unseres Datenbankservers abfragen. 
-   # mysql -h localhost -u root -p 
- 
-   Enter password: dxiFHdig10JXyRAec74j7bcPdyVGX9I1BxcYcoFs 
- 
-<code>Welcome to the MariaDB monitor.  Commands end with ; or \g. 
-Your MariaDB connection id is 12 
-Server version: 5.5.41-MariaDB MariaDB Server 
- 
-Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. 
- 
-Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 
- 
-MariaDB [(none)]> 
-</code> 
-Auch hier können wir uns nun den Status des Daemon anzeigen lassen. Hierzu verwenden wir den SQL-Befehl **status**, den wir mit einem Strichpunkt **;** abschließen. 
-<code>MariaDB [(none)]> status; 
--------------- 
-mysql  Ver 15.1 Distrib 5.5.41-MariaDB, for Linux (x86_64) using readline 5.1 
- 
-Connection id:          12 
-Current database: 
-Current user:           root@localhost 
-SSL:                    Not in use 
-Current pager:          stdout 
-Using outfile:          '' 
-Using delimiter:        ; 
-Server:                 MariaDB 
-Server version:         5.5.41-MariaDB MariaDB Server 
-Protocol version:       10 
-Connection:             Localhost via UNIX socket 
-Server characterset:    latin1 
-Db     characterset:    latin1 
-Client characterset:    utf8 
-Conn.  characterset:    utf8 
-UNIX socket:            /var/lib/mysql/mysql.sock 
-Uptime:                 2 hours 38 min 10 sec 
- 
-Threads: 1  Questions: 31  Slow queries: 0  Opens: 1  Flush tables: 2  Open tables: 27  Queries per second avg: 0.003 
--------------- 
- 
-MariaDB [(none)]> 
-</code> 
-Die Verbindung zum Datenbank-Daemon beenden wir mit dem Befehl **quit**. 
-   MariaDB [(none)]> quit; 
- 
-   Bye 
- 
-==== Datenbank-Dump ==== 
-Zur Sicherung unserer MariaDB-Tabellen legen wir uns ein kleines Script an, mit dessen Hilfe wir täglich eine Sicherung der kompletten Datenbank vornehmen können. 
-   # touch /root/bin/mariadb_fulldump 
- 
-Damit das Script später auch nur vom User **root** gelesen udn ausgeführt werden kann, setzen wir noch kurz die Dateirechte entsprechend. 
-   # chmod 700 /root/bin/mariadb_fulldump 
- 
-Nun efüllen wir noch unser Script. 
-   # vim /root/bin/mariadb_fulldump 
-<file bash /root/bin/mariadb_fulldump>#!/bin/bash 
- 
-################################################################################## 
-# Script-Name : mysqldump.sh                                                     #  
-# Description : Datenbank-Dump der kompletten (alle Tabellen) unserer            # 
-#               MariaDB nach /root/mysql/dumps                                   # 
-#               Drei Datensicherungen werden aufgehoben, ältere werden gelöscht. #  
-#                                                                                #  
-#                                                                                #  
-#                                                                                #  
-# Last update : 13.05.2013                                                       #  
-# Version     : 0.01                                                             #  
-################################################################################## 
- 
-################################################################################## 
-#                                  H I S T O R Y                                 #  
-################################################################################## 
-# Version     : 0.01                                                             #  
-# Description : initial release                                                  # 
-# ------------------------------------------------------------------------------ #  
-# Version     : x.xx                                                             #  
-# Description : <Description>                                                    # 
-################################################################################## 
- 
-# Source function library. 
-. /etc/init.d/functions 
- 
-# Definition der systemindividuellen Variablen 
- 
-# Script-Name. 
-SCRIPT_NAME='mariadb_fulldump' 
- 
-# Backup-Verzeichnis. 
-DIR_TARGET='/root/mysql/dump' 
-DUMP_FILES="$DIR_TARGET/*.sql" 
- 
-# Mail-Empfänger 
-MAIL_RECIPIENT='django@nausch.org' 
- 
-# Status-Mail versenden? [J|N]. 
-MAIL_STATUS='J' 
- 
-# Datenbankdefinitionen 
-DB_HOST="127.0.0.1" 
-DB_USER="root" 
-DB_SECRET="immNI+32$cHU551n5Kn13gn1uS4W6HYu0SAJwH8W" 
- 
-# Variablen 
-MYSQLDUMP_COMMAND=`command -v mysqldump` 
-TOUCH_COMMAND=`command -v touch` 
-RM_COMMAND=`command -v rm` 
-PROG_SENDMAIL=`command -v sendmail` 
-CAT_COMMAND=`command -v cat` 
-DATE_COMMAND=`command -v date` 
-MKDIR_COMMAND=`command -v mkdir` 
-FILE_NAME='/'$SCRIPT_NAME'.'`$DATE_COMMAND '+%Y-%m-%d-%H%M%S'`'.sql' 
-FILE_LOCK='/tmp/'$SCRIPT_NAME'.lock' 
-FILE_LOG='/var/log/'$SCRIPT_NAME'.log' 
-FILE_LAST_LOG='/tmp/'$SCRIPT_NAME'.log' 
-FILE_MAIL='/tmp/'$SCRIPT_NAME'.mail' 
-VAR_HOSTNAME=`uname -n` 
-VAR_SENDER='root@'$VAR_HOSTNAME 
-VAR_EMAILDATE=`$DATE_COMMAND '+%a, %d %b %Y %H:%M:%S (%Z)'` 
- 
-# Functionen 
-function log() { 
-        echo $1 
-        echo `$DATE_COMMAND '+%Y/%m/%d %H:%M:%S'` " INFO:" $1 >>${FILE_LAST_LOG} 
-} 
- 
-function movelog() { 
-        $CAT_COMMAND $FILE_LAST_LOG >> $FILE_LOG 
-        $RM_COMMAND -f $FILE_LAST_LOG 
-        $RM_COMMAND -f $FILE_LOCK 
-} 
- 
-function sendmail() { 
-        case "$1" in 
-        'STATUS') 
-                MAIL_SUBJECT='Status execution '$SCRIPT_NAME' script.' 
-        ;; 
-        *) 
-                MAIL_SUBJECT='ERROR while execution '$SCRIPT_NAME' script !!!' 
-        ;; 
-        esac 
- 
-$CAT_COMMAND <<MAIL >$FILE_MAIL 
-Subject: $MAIL_SUBJECT 
-Date: $VAR_EMAILDATE 
-From: $VAR_SENDER 
-To: $MAIL_RECIPIENT 
- 
-MAIL 
- 
-$CAT_COMMAND $FILE_LAST_LOG >> $FILE_MAIL 
- 
-$PROG_SENDMAIL -f $VAR_SENDER -t $MAIL_RECIPIENT < $FILE_MAIL 
- 
-$RM_COMMAND -f $FILE_MAIL 
- 
-} 
- 
-# Main. 
-log "" 
-log "+-------------------------------------------------------------------------------+" 
-log "| ........................ Start des MariaDB-Dumps ............................ |" 
-log "+-------------------------------------------------------------------------------+" 
-log "" 
-log "Das Datenbank-Backupscript wurde mit folgenden Parametern aufgerufen:" 
-log "" 
-log "SCRIPT_NAME     : $SCRIPT_NAME" 
-log "ZIEL-VERZEICHNIS: $DIR_TARGET" 
-log "MAIL_EMPFÄNGER  : $MAIL_RECIPIENT" 
-log "MAIL_STATUS     : $MAIL_STATUS" 
-log "" 
- 
-# Prüfung ob alle benötigten Programme und Befehle vorhanden sind. 
-if [ ! -s "$MYSQLDUMP_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$MYSQLDUMP_COMMAND' vorhanden ist.................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 10 
-else 
-        log "Prüfen, ob das Programm '$MYSQLDUMP_COMMAND' vorhanden ist.................[  OK  ]" 
-fi 
- 
-if [ ! -s "$TOUCH_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$TOUCH_COMMAND' vorhanden ist.........................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 11 
-else 
-        log "Prüfen, ob das Programm '$TOUCH_COMMAND' vorhanden ist.........................[  OK  ]" 
-fi 
- 
-if [ ! -s "$RM_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$RM_COMMAND' vorhanden ist............................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 12 
-else 
-        log "Prüfen, ob das Programm '$RM_COMMAND' vorhanden ist............................[  OK  ]" 
-fi 
- 
-if [ ! -s "$CAT_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$CAT_COMMAND' vorhanden ist..........................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 13 
-else 
-        log "Prüfen, ob das Programm '$CAT_COMMAND' vorhanden ist...........................[  OK  ]" 
-fi 
- 
-if [ ! -s "$DATE_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$DATE_COMMAND' vorhanden ist...........................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 14 
-else 
-        log "Prüfen, ob das Programm '$DATE_COMMAND' vorhanden ist..........................[  OK  ]" 
-fi 
- 
-if [ ! -s "$MKDIR_COMMAND" ]; then 
-        log "Prüfen, ob das Programm '$MKDIR_COMMAND' vorhanden ist..........................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 15 
-else 
-        log "Prüfen, ob das Programm '$MKDIR_COMMAND' vorhanden ist.........................[  OK  ]" 
-fi 
- 
-if [ ! -s "$PROG_SENDMAIL" ]; then 
-        log "Prüfen, ob das Programm '$PROG_SENDMAIL' vorhanden ist.................[FEHLER]" 
-        sendmail ERROR 
-        movelog 
-        exit 16 
-else 
-        log "Prüfen, ob das Programm '$PROG_SENDMAIL' vorhanden ist.................[  OK  ]" 
-fi 
- 
-if [ ! -e "$FILE_LOCK" ]; then 
-        log "Prüfen, ob das Programm nicht bereits oder noch läuft......................[  OK  ]" 
- 
-        $TOUCH_COMMAND $FILE_LOCK 
-else 
-        log "Prüfen, ob das Programm nicht bereits oder noch läuft......................[FEHLER]" 
-        log "" 
-        log "FEHLER: Das Script läuft bereits bzw. immer noch, oder die LOCK-Datei" 
-        log "existiert noch von einem früheren Programmaufruf!" 
-        log "" 
-        sendmail ERROR 
-        movelog 
-        exit 20 
-fi 
- 
-if [ ! -d "$DIR_TARGET" ]; then 
-        log "Prüfen, ob Zielverzeichnis existiert.......................................[FEHLER]" 
-        log "" 
-        log " INFO: Erstelle Zielverzeichnis!" 
-        log " INFO: --> "$DIR_TARGET 
-        log "" 
- 
-        $MKDIR_COMMAND -p $DIR_TARGET 
-else 
-        log "Prüfen, ob Zielverzeichnis existiert.......................................[  OK  ]" 
-fi 
- 
-if [ "$UID" -ne 0 ]; then 
-        log "Prüfen, ob das Script mit root-Rechten gestartet wurde.......................[FEHLER]" 
-        log "" 
-        sendmail ERROR 
-        movelog 
-        exit 21 
-else 
-        log "Prüfen, ob das Script mit root-Rechten gestartet wurde.....................[  OK  ]" 
-fi 
- 
-# Start dumping. 
-log "" 
-log "+-------------------------------------------------------------------------------+" 
-log "| .................... Start des Datenbank-Dumps .............................. |" 
-log "+-------------------------------------------------------------------------------+" 
-log "" 
- 
-log "$MYSQLDUMP_COMMAND -h "$DB_HOST" -u "$DB_USER" --all-databases --events > $DIR_TARGET$FILE_NAME" 
- 
-$MYSQLDUMP_COMMAND -h $DB_HOST -u $DB_USER --password=$DB_SECRET --all-databases --events > $DIR_TARGET$FILE_NAME 
- 
-if [ "$?" != 0 ]; then 
-        log "" 
-        $RM_COMMAND -f $FILE_LOCK 
-        sendmail ERROR 
-        movelog 
-        exit 99 
-else 
-        log "" 
-        log "+-------------------------------------------------------------------------------+" 
-        log "| ........................ Datenbank-Dump beendet ............................. |" 
-        log "+-------------------------------------------------------------------------------+" 
-        log "" 
-fi 
- 
-# Bis auf die letzten drei Datenbankbackups alle anderen Dateien löschen. 
-cd $DIR_TARGET/ 
-(ls $DUMP_FILES -t|head -n 3;ls $DUMP_FILES )|sort|uniq -u|xargs rm 
-if [ "$?" != "0" ]; then 
-        log "alte Datenbanksicherungen aus Zielverzeichnis $DIR_TARGET gelöscht....[FEHLER]" 
-        log "" 
-        sendmail ERROR 
-        movelog 
-        exit 69 
-else 
-        log "alte Datenbanksicherungen aus Zielverzeichnis $DIR_TARGET gelöscht....[  OK  ]" 
-        log "" 
-fi 
- 
-# Finish syncing. 
-log "+-------------------------------------------------------------------------------+" 
-log "| .......................... Ende des MariaDB-Dumps ........................... |" 
-log "+-------------------------------------------------------------------------------+" 
-log "" 
- 
-# Status eMail versenden 
-if [ $MAIL_STATUS = 'J' ]; then 
-        sendmail STATUS 
-fi 
- 
-# Temporäres Logfile permanent sichern 
-movelog 
- 
-exit 0 
-</file> 
- 
- 
-Anschließend tragen wir noch in der Datei **/etc/crontab** ein, daß das Script täglich um 3:20 Uhr laufen soll. 
-   # vim /etc/crontab 
- 
-<file bash /etc/crontab>SHELL=/bin/bash 
-PATH=/sbin:/bin:/usr/sbin:/usr/bin 
-MAILTO=root 
-HOME=/ 
- 
-# For details see man 4 crontabs 
- 
-# Example of job definition: 
-# .---------------- minute (0 - 59) 
-# |  .------------- hour (0 - 23) 
-# |  |  .---------- day of month (1 - 31) 
-# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
-# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
-# |  |  |  |  | 
-# *  *  *  *  * user-name command to be executed 
- 
-# Django: 2013-05-13 täglicher MariaDB-Datenbankdump 
-20  3  *  *  root /root/bin/mariadb_fulldump 1>/dev/null 2>&1 
- 
-</file> 
- 
-==== phpMyAdmin ==== 
-Zur komfortablen Administration unserer [[centos:mariadb|MariaDB unter CentOS 7.x]] greifen wir auf das PHP-Projekt [[http://phpmyadmin.sourceforge.net/|phpMyAdmin]] zurück. Im Kapitel [[centos:web_c7:phpmyadmin|phpMyAdmin unter CentOS 7.x installieren und einrichten]] ist die Installation und Konfiguration des PHP Projektes unter CentOS 7.x beschrieben. 
- 
-====== Links ====== 
-  * **[[wiki:start|Zurück zu Projekte und Themenkapitel]]** 
-  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** 
- 
-~~DISCUSSION~~ 
-~~AUTOTWEET:~~ 
  • centos/mariadb.txt
  • Zuletzt geändert: 22.07.2019 14:52.
  • (Externe Bearbeitung)