• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Mysql community Server 5.7.7 startet nicht

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.748
Ort
in der Zukunft
Servus,
habe gestern ein Distib. upgrade von opsenSuse Leap 42.1 auf 42.2 gemacht.
*fast* alles funktioniert soweit - wie sonst eigentlich auch...

Nur Mysql mag nun nicht mehr... also gar nicht mehr :(

Das Fatale an der Sache ist das mir persönlich die Fehlerausgabe etwas zu kurz ist ;D
Und nein Logfile wird auch nicht erstellt...



Ich habe zuletzt die my.cnf durch die originale / neue my.cnf.rpmnew ersetzt und meinen Datenbank-Ordner weg kopiert sodass er in nem neuen ordner die default-db erstellen "sollte" - auch hier exakt das gleiche ergebnis.

Ich werde nun wohl mal schauen ob ich die Warnings meg bekomme - aber ob das wirklich den Start verhindert?
Jemand sonst eine Idee?

--- [2016-12-08 20:57 CET] Automatisch zusammengeführter Beitrag ---

So, so wie es aussieht geht es nun.
Mysql 5.7.x "kann" je nach Buildoption CMake mit der Option compiliert werden das der relativ neue Befehl "--secure-file-priv" explizit notwendig ist zum Starten.
Leider kommt dann keine Fehlermeldung "fehlt".
Somit - sobald ich in der my.cnf secure-file-priv definiert hatte begann mysqld zumindest mit dem Startvorgang und ich bekam etwas mehr zu sehen.

Nun konnte ein Plugin "archive" nicht geladen werden und am Ende Stand die Meldung ERROR] unknown variable 'group=sql'

das Plugin ist im Plugin-Ordner in der Tat nicht enthalten, brauche ich auch nicht...
habe ich dann in der /etc/my.cnf.d/default-plugins.cnf gefunden.
>> Alle Plugin's dort deaktiviert.

interessanter ist der letzte Fehler der auch zum Stoppen des Dienstes geführt hat.
letztendlich bin ich darauf gekommen - auch weil im journalctl immer "--mysqld" not found stand das das systemd helper script
"mysql-systemd-helper" irgendwie Blödsinn ist. K.a wie das in einer anderen Installation funktionieren kann - die Befehle dort sind schlicht falsch und scheinen nicht zu der Version zu gehören die im Package mit installiert wird?

Jedenfalls habe ich das Script nun umgeschrieben und mysql startet.
Hier falls jemand den gleichen Fehler haben sollte die veränderte Version:
[src=bash]
#!/bin/bash
die() {
echo "$1"
exit 1
}


# Read options from config file
read_config() {
# Initial settings
MYSQLVER="$(echo 5.7.7 | sed 's|\.[0-9]\+$||')"
mysql_daemon_user=mysql
mysql_daemon_group=mysql
if [[ -z "$INSTANCE" || "x$INSTANCE" = "xdefault" ]]; then
datadir=/var/lib/mysql
socket="/var/run/mysql/mysql.sock"
else
datadir="/var/lib/mysql-$INSTANCE"
socket="/var/run/mysql/mysql.${INSTANCE}.sock"
fi


# Read options - important for multi setup
if [[ -n "$INSTANCE" && "x$INSTANCE" != "xdefault" ]]; then
opts="$(/usr/bin/my_print_defaults mysqld mysqld_multi "$INSTANCE")"
tmp_opts="$opts"
else
opts="$(/usr/bin/my_print_defaults mysqld)"
tmp_opts="$opts"
fi


# Update local variables according to the settings from config
for arg in $tmp_opts; do
case "$arg" in
--basedir=*) basedir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
--socket=*) socket="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
--datadir=*) datadir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
--user=*) mysql_daemon_user="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
--group=*) mysql_daemon_group="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;;
esac
done
}


# Create new empty database if needed
mysql_install() {
if [[ ! -d "$datadir/mysql" ]]; then
echo "Creating MySQL privilege database... "
mysql_install_db --user="$mysql_daemon_user" --datadir="$datadir" || \
die "Creation of MySQL databse in $datadir failed"
echo -n "$MYSQLVER" > "$datadir"/mysql_upgrade_info
fi
}


# Upgrade database if needed
mysql_upgrade() {
# Run mysql_upgrade on every package install/upgrade. Not always
# necessary, but doesn't do any harm.
if [[ -f "$datadir/.run-mysql_upgrade" ]]; then
echo "Checking MySQL configuration for obsolete options..."
sed -i -e 's|^\([[:blank:]]*\)skip-locking|\1skip-external-locking|' \
-e 's|^\([[:blank:]]*skip-federated\)|#\1|' /etc/my.cnf


# instead of running mysqld --bootstrap, which wouldn't allow
# us to run mysql_upgrade, we start a full-featured server with
# --skip-grant-tables and restict access to it by unix
# permissions of the named socket


echo "Trying to run upgrade of MySQL databases..."


# Check whether upgrade process is not already running
protected="$(cat "/var/run/mysql/protecteddir.$INSTANCE" 2> /dev/null)"
if [[ -n "$protected" && -d "$protected" ]]; then
pid="$(cat "$protected/mysqld.pid" 2> /dev/null)"
if [[ "$pid" && -d "/proc/$pid" ]] &&
[[ $(readlink "/proc/$pid/exe" | grep -q "mysql") ]]; then
die "Another upgrade in already in progress!"
else
echo "Stale files from previous upgrade detected, cleaned them up"
rm -rf "$protected"
rm -f "/var/run/mysql/protecteddir.$INSTANCE"
fi
fi
protected="$(mktemp -d -p /var/tmp mysql-protected.XXXXXX | tee "/var/run/mysql/protecteddir.$INSTANCE")"
[ -n "$protected" ] || die "Can't create a tmp dir '$protected'"


# Create a secure tmp dir
chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" "$protected" || die "Failed to set group/user to '$protected'"
chmod 0700 "$protected" || die "Failed to set permissions to '$protected'"


# Run protected MySQL accessible only though socket in our directory
echo "Running protected MySQL... "


echo " /usr/sbin/mysqld --user=$mysql_daemon_user --skip-networking --skip-grant-tables --log-error=$protected/log_upgrade_run --socket=$protected/mysql.sock --pid-file=$protected/mysqld.pid"
/usr/sbin/mysqld \
--user="$mysql_daemon_user" \
$opts \
--skip-networking \
--skip-grant-tables \
--log-error="$protected/log_upgrade_run" \
--socket="$protected/mysql.sock" \
--pid-file="$protected/mysqld.pid" &


mysql_wait "$protected/mysql.sock" || die "MySQL didn't start, can't continue"


# Run upgrade itself
echo "Running upgrade itself..."
echo "It will do some chek first and report all errors and tries to correct them"
echo
if /usr/bin/mysql_upgrade --no-defaults --force --socket="$protected/mysql.sock"; then
echo "Everything upgraded successfully"
up_ok=""
rm -f "$datadir/.run-mysql_upgrade"
[[ $(grep -q "^$MYSQLVER" "$datadir/mysql_upgrade_info" 2> /dev/null) ]] || \
echo -n "$MYSQLVER" > "$datadir/mysql_upgrade_info"
else
echo "Upgrade failed"
up_ok="false"
fi


# Shut down MySQL
echo "Shuting down protected MySQL"
kill "$(cat "$protected/mysqld.pid")"
for i in {1..30}; do
/usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 || break
done
/usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 && kill -9 "$(cat "$protected/mysqld.pid")"


# Cleanup
echo "Final cleanup"
rm -rf "$protected" "/var/run/mysql/protecteddir.$INSTANCE"
[[ -z "$up_ok" ]] || die "Something failed during upgrade, please check logs"
fi
}


mysql_wait() {
[[ -z "$1" ]] || socket="$1"
echo "Waiting for MySQL to start"
for i in {1..60}; do
/usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1 && break
sleep 1
done
if /usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1; then
echo "MySQL is alive"
return 0
else
echo "MySQL is still dead"
return 1
fi
}


mysql_start() {
/usr/sbin/mysqld --user="$mysql_daemon_user" $opts
}


# We rely on output in english at some points
LC_ALL=C


INSTANCE="$2"
read_config
mkdir -p /var/run/mysql
chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" /var/run/mysql
case "$1" in
install)
mysql_install ;;
upgrade)
mysql_upgrade ;;
start)
mysql_start ;;
wait)
mysql_wait ;;
*)
echo "Supported commands are:"
echo " install - creates empty database if needed"
echo " upgrade - tries to migrate data to newer version if needed"
echo " start - tries to start instance"
echo " wait - waits till instance is pingable"
echo "All commands can take extra argument which is group from 'mysqld_multi' you want to work with"
;;
esac




[/src]
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.748
Ort
in der Zukunft
  • Thread Starter Thread Starter
  • #3
tja - das hätte hier mit ziemlicher Sicherheit nichts gebracht da die Option dort ebenso exlizit ist...
Und, als ich vor nem Jahr ca. den Server neu installiert hatte -zuerst MariaDB installiert - aber div. andere Pakete (weiß ich nu heute nicht mehr) mysql als Voraussetzung angegeben hatten und sic mit MariaDB nicht zufrieden geben wollten...
Da Ich sonst bis heute keine Probleme mit mysql habe und die Performance auch mehr als ausreicht ... warum?
Bzw. Klar könnte man nun sagen falsche Distribution, gerade hier ist das Paketmanagement dann scheiße... oder so.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.748
Ort
in der Zukunft
  • Thread Starter Thread Starter
  • #5
Nun - wenn ich aber kein einziges der Feature auf der Liste interessant finde?
Klar ich mag Oracle auch nicht sonderlich - die machen genug Merkwürdige dinge - aber insofern die default mysql-enginge von openSuse sich nicht auf MariaDB ändert werde ich das nicht ändern.

Man soll ja immer schön die Offiziellen Quellen nutzen - die sind getestet usw.. ;)

- Andere spezielle Storage-Engines mag in Sonderfällen etwas bringen ich sehe für mich keinen Vorteil.
- Replication habe ich ebenso wenig.
- mehr Performance gut und schön - aktuell langweilt sich mein Server > kein Problem.
- Mysql Community Edition ist ebenfalls komplett OpenSource - Enterprise Feature nutze ich nicht.
 
Oben