MySQL 8 – create Database with own user

Die Syntax für das Anlegen eines MySQL-Benutzers hat sich geändert. Daher eine kurze Notiz dazu:

mysql -p
create database mydatabase;
create user 'myuser'@'localhost' IDENTIFIED BY 'My$secRetPassw0rd';
grant all on mydatabase.* TO 'myuser'@'localhost';
flush privileges;
exit

Es scheint, als könnten wir nicht finden, wonach du suchst. Vielleicht hilft eine Suche?

tägliche Mysql-Backups

Sofern der MySQL-Root User mit einem Passwort belegt wurde sollte man zunächst Passwort Datei für MySQL anlegen.

Anlegen der Datei

/root/.my.cnf

Inhalt:

[mysqldump]
user=root
password=YourPassW0rd
[mysql]
user=root
password=YourPassW0rd

Rechte setzen:

chmod 0600 /root/.my.cnf

Das Script für da MySQL-Backup wird in

/usr/local/bin/mysqlbackup

angelegt. Folgender Inhalt kann übernommen werden.

#!/bin/bash

USER="root"
BDIR="/home/backup/mysql"
DATE=$(date +%G-%m-%d)

if [ ! -d "${BDIR}" ]
then
        mkdir -p "${BDIR}"
fi

for i in $(/usr/bin/mysql -u${USER} -e 'show databases' | grep -vw "Database")
do
        if [ ! -d "${BDIR}/${i}" ]
        then
                mkdir "${BDIR}/${i}"
        fi
        /bin/touch "${BDIR}"
        /usr/bin/mysqldump -u${USER} -c -Q --default-character-set=latin1  ${i} >> "${BDIR}/${i}/${i}-${DATE}.sql"
        /bin/gzip -9 "${BDIR}/${i}/${i}-${DATE}.sql"
done

/usr/bin/find "${BDIR}" -mtime +3 -type f -exec rm {} \; 2> /dev/null

Das Script ausführbar machen:

chmod a+x /usr/local/bin/mysqlbackup

Sollte man Systemweit das Kommando mysqlbackup ausführen können. Um es nun täglich laufen zu lassen, reicht ein Symlink nach /etc/cron.daily

ln -s /usr/local/bin/mysqlbackup /etc/cron.daily/

Es scheint, als könnten wir nicht finden, wonach du suchst. Vielleicht hilft eine Suche?

Setup Redis-Server 6.0.0 Beta

Hier ein Beispiel Setup für den kommenden Redis-Server zum testen. Dieses Beispiel funktioniert auf derzeit aktuellen Debian u. Ubuntu Installationen.

Sofern ein Redis-Server bereits vorhanden ist, sollte dieser vorab entfernt werden:

apt remove redis-server redis-tools
dpkg --purge redis-server redis-tools

Falls nicht vorhanden die build & binutils nachinstallieren:

apt update && apt install build-essential autoconf automake libtool flex bison debhelper binutils -y

Das Projekt frisch aus dem git clonen:

cd /usr/local/src/
git clone https://github.com/antirez/redis.git

Den neuen Redis-Server compilieren und installieren:

cd redis/
make -j4
make install

Konfiguration und Init-Script kopieren:

cp redis.conf /etc/redis/
cp utils/redis_init_script /etc/init.d/redis-server
chmod a+x /etc/init.d/redis-server

Fertige Beispiel Konfigurationen (können direkt übernommen werden):

Benötigte Symlinks setzen, sofern redis-server schon via apt installiert war:

ln -s /usr/local/bin/redis-server /usr/bin/
ln -s /usr/local/bin/redis-cli /usr/bin/
ln -s /usr/local/bin/redis-benchmark /usr/bin/
ln -s /usr/local/bin/redis-check-aof /usr/bin/
ln -s /usr/local/bin/redis-check-rdb /usr/bin/
ln -s /usr/local/bin/redis-sentinal /usr/bin/

Zu guter letzt kann nun der Redis-Server gestartet werden:

/etc/init.d/redis-server start

Eine Ausgabe bei erfolgreichem Start könnte wie folgt aussehen:

/etc/init.d/redis-server start
Starting Redis server...
31976:C 10 Feb 2020 23:47:23.183 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
31976:C 10 Feb 2020 23:47:23.183 # Redis version=999.999.999, bits=64, commit=256ec6c5, modified=0, pid=31976, just started
31976:C 10 Feb 2020 23:47:23.183 # Configuration loaded

HINWEIS: In diesem Init-Script funktionieren derzeit nur start und stop

Ein Redis-Benchmark kann wie in diesem Beispiel aussehen:

redis-benchmark -t set,get --threads 1 -s /tmp/redis.sock -q
SET: 173611.12 requests per second
GET: 176366.86 requests per second

Es scheint, als könnten wir nicht finden, wonach du suchst. Vielleicht hilft eine Suche?

Es scheint, als könnten wir nicht finden, wonach du suchst. Vielleicht hilft eine Suche?

Play with redis-server

Various tests were carried out in search of a fast redis-server.

A strong single thread is required for this test.

Now there are decided differences with different redis versions on different Linux distributions. This is tried to be recorded here.

My test server is in the data center at Hetzner.

Server specs:

CPU: Intel(R) Xeon(R) CPU E3-1275 v5 @ 3.60GHz
RAM: 64GB DDR4
DISK: 2x NVME 512GB

Test 1 – Ubuntu 16.x – redis 3.0.3

root@Ubuntu-1604-xenial-64-minimal# redis-benchmark -q
PING_INLINE: 149476.83 requests per second
PING_BULK: 150375.94 requests per second
SET: 151745.08 requests per second
GET: 149925.03 requests per second
INCR: 150602.42 requests per second
LPUSH: 149476.83 requests per second
LPOP: 147275.41 requests per second
SADD: 147929.00 requests per second
SPOP: 152905.20 requests per second
LPUSH (needed to benchmark LRANGE): 149700.61 requests per second
LRANGE_100 (first 100 elements): 84530.86 requests per second
LRANGE_300 (first 300 elements): 31298.90 requests per second
LRANGE_500 (first 450 elements): 21537.80 requests per second
LRANGE_600 (first 600 elements): 16700.07 requests per second
MSET (10 keys): 153374.23 requests per second

Test 2 – Ubuntu 19.x – redis 5.0.5

root@Ubuntu-1910-eoan-64-minimal# redis-benchmark -q
PING_INLINE: 132802.12 requests per second
PING_BULK: 131752.31 requests per second
SET: 135685.22 requests per second
GET: 134589.50 requests per second
INCR: 133155.80 requests per second
LPUSH: 131578.95 requests per second
RPUSH: 134228.19 requests per second
LPOP: 137174.22 requests per second
RPOP: 136425.66 requests per second
SADD: 131752.31 requests per second
HSET: 132626.00 requests per second
SPOP: 128369.71 requests per second
LPUSH (needed to benchmark LRANGE): 135501.36 requests per second
LRANGE_100 (first 100 elements): 68728.52 requests per second
LRANGE_300 (first 300 elements): 30931.02 requests per second
LRANGE_500 (first 450 elements): 21815.01 requests per second
LRANGE_600 (first 600 elements): 16906.17 requests per second
MSET (10 keys): 116822.43 requests per second

Test 3 – Debian 10.x – redis 5.0.3

root@Debian-102-buster-64-minimal# redis-benchmark -q
PING_INLINE: 102249.49 requests per second
PING_BULK: 106951.88 requests per second
SET: 102249.49 requests per second
GET: 105596.62 requests per second
INCR: 102669.41 requests per second
LPUSH: 102040.81 requests per second
RPUSH: 101936.80 requests per second
LPOP: 98328.42 requests per second
RPOP: 102249.49 requests per second
SADD: 102880.66 requests per second
HSET: 97751.71 requests per second
SPOP: 104931.80 requests per second
LPUSH (needed to benchmark LRANGE): 99601.60 requests per second
LRANGE_100 (first 100 elements): 55370.98 requests per second
LRANGE_300 (first 300 elements): 29163.02 requests per second
LRANGE_500 (first 450 elements): 21677.87 requests per second
LRANGE_600 (first 600 elements): 17102.79 requests per second
MSET (10 keys): 80000.00 requests per second

Test 4 – Debian 10.x – redis 6.0.0 beta

root@Debian-102-buster-64-minimal# redis-benchmark -q
PING_INLINE: 149253.73 requests per second
PING_BULK: 152207.00 requests per second
SET: 151057.41 requests per second
GET: 149476.83 requests per second
INCR: 149253.73 requests per second
LPUSH: 151975.69 requests per second
RPUSH: 151057.41 requests per second
LPOP: 151975.69 requests per second
RPOP: 152207.00 requests per second
SADD: 150150.14 requests per second
HSET: 152439.02 requests per second
SPOP: 151285.92 requests per second
LPUSH (needed to benchmark LRANGE): 153374.23 requests per second
LRANGE_100 (first 100 elements): 85543.20 requests per second
LRANGE_300 (first 300 elements): 35790.98 requests per second
LRANGE_500 (first 450 elements): 26143.79 requests per second
LRANGE_600 (first 600 elements): 20738.28 requests per second
MSET (10 keys): 157480.31 requests per second

Test 5 – Ubuntu 16.x – redis 6.0.0 beta

root@Ubuntu-1604-xenial-64-minimal# redis-benchmark -q
PING_INLINE: 140252.45 requests per second
PING_BULK: 141843.97 requests per second
SET: 142857.14 requests per second
GET: 141843.97 requests per second
INCR: 142247.52 requests per second
LPUSH: 144092.22 requests per second
RPUSH: 143472.02 requests per second
LPOP: 141843.97 requests per second
RPOP: 140252.45 requests per second
SADD: 141643.06 requests per second
HSET: 143061.52 requests per second
SPOP: 141643.06 requests per second
LPUSH (needed to benchmark LRANGE): 144927.53 requests per second
LRANGE_100 (first 100 elements): 78678.20 requests per second
LRANGE_300 (first 300 elements): 34470.87 requests per second
LRANGE_500 (first 450 elements): 25025.03 requests per second
LRANGE_600 (first 600 elements): 19821.61 requests per second
MSET (10 keys): 150375.94 requests per second

Test 6 – Arch Linux – Release 2020.01.01 – redis 5.0.7

[root@archlinux-latest-64-minimal ~]# redis-benchmark -q
PING_INLINE: 136239.78 requests per second
PING_BULK: 136239.78 requests per second
SET: 138121.55 requests per second
GET: 135685.22 requests per second
INCR: 137551.58 requests per second
LPUSH: 137931.03 requests per second
RPUSH: 139082.06 requests per second
LPOP: 139275.77 requests per second
RPOP: 137362.64 requests per second
SADD: 136425.66 requests per second
HSET: 136986.30 requests per second
SPOP: 136239.78 requests per second
LPUSH (needed to benchmark LRANGE): 140646.97 requests per second
LRANGE_100 (first 100 elements): 101729.40 requests per second
LRANGE_300 (first 300 elements): 45682.96 requests per second
LRANGE_500 (first 450 elements): 30618.49 requests per second
LRANGE_600 (first 600 elements): 25252.53 requests per second
MSET (10 keys): 143472.02 requests per second

Test 7 – Arch Linux – Release 2020.01.01 – redis 6.0.0 beta – 1 thread

root@archlinux-latest-64-minimal# redis-benchmark --threads 1 -q
PING_INLINE: 136425.66 requests per second
PING_BULK: 134952.77 requests per second
SET: 134589.50 requests per second
GET: 136054.42 requests per second
INCR: 135685.22 requests per second
LPUSH: 139470.02 requests per second
RPUSH: 139664.80 requests per second
LPOP: 138696.25 requests per second
RPOP: 137362.64 requests per second
SADD: 132275.14 requests per second
HSET: 137741.05 requests per second
SPOP: 134770.89 requests per second
LPUSH (needed to benchmark LRANGE): 138696.25 requests per second
LRANGE_100 (first 100 elements): 65616.80 requests per second
LRANGE_300 (first 300 elements): 27389.76 requests per second
LRANGE_500 (first 450 elements): 19739.44 requests per second
LRANGE_600 (first 600 elements): 15186.03 requests per second
MSET (10 keys): 148367.95 requests per second

Test 8 – Arch Linux – Release 2020.01.01 – redis 6.0.0 beta – 2 threads

root@archlinux-latest-64-minimal# redis-benchmark --threads 2 -q
PING_INLINE: 240384.61 requests per second
PING_BULK: 261780.11 requests per second
SET: 251256.28 requests per second
GET: 251256.28 requests per second
INCR: 241545.89 requests per second
LPUSH: 240963.86 requests per second
RPUSH: 199600.80 requests per second
LPOP: 219298.25 requests per second
RPOP: 199600.80 requests per second
SADD: 220264.31 requests per second
HSET: 238663.48 requests per second
SPOP: 247524.75 requests per second
LPUSH (needed to benchmark LRANGE): 244498.77 requests per second
LRANGE_100 (first 100 elements): 100000.00 requests per second
LRANGE_300 (first 300 elements): 53163.21 requests per second
LRANGE_500 (first 450 elements): 36363.64 requests per second
LRANGE_600 (first 600 elements): 30229.75 requests per second
MSET (10 keys): 170068.03 requests per second

Es scheint, als könnten wir nicht finden, wonach du suchst. Vielleicht hilft eine Suche?