Ubuntu 16.04: MySQL startet nicht mehr – Die Lösung

MySQL scheint irgendwie gerne nach einem Update des Systems Probleme zu machen, wie schon damals bei Debian Squeeze. Ich habe das Update heute installiert, und dabei schon ein paar Fehler in Richtung MySQL bekommen, mir dabei aber erst mal nichts gedacht.

Nach dem Upgrade lief dann aber der MySQL-Server nicht mehr, und lies sich auch nicht mehr starten. Ein aptide uprade meinte auch, MySQL wäre nicht richtig konfiguriert, aber lösen konnte es das Problem auch nicht.



Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                   Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Weiterlesen

Kein Aprilscherz: Windows bekommt eine Linux-Subsystem

Tux schaut aus dem Fenster. (Quelle: heise)

Ich muss zugeben, als ich diese Meldung heute bei heise gesehen habe, habe ich wirklich eine Weile gedacht, sie hätten ihren diesjährigen Aprilscherz einen Tag zu früh veröffentlicht: Windows 10 bekommt ein Linux-Subsystem, und wird Linux-Binaries nativ ausführen können! Es ist keine VM im Hintergrund aktiv, es ist „einfach nur“ ein Wrapper, der die Linux Systemaufrufe auf die äquivalenten Windows-Versionen umbiegt. Also quasi ein inverses Wine.

Ich denke, das Zitat von Mark Shuttleworth fasst es ganz gut zusammen: Weiterlesen

Alternativer SSH Port mit git unter Windows und Linux

Mal wieder ein kleiner Tipp aus der Praxix: Wie bringt man git dazu, einen alternativen Port zu benutzten, wenn man per SSH auf einen Server zugreifen möchte? Eigentlich ist die Sache ganz einfach:

git clone ssh://server.example.org:1234:/pfad/repo.git

Das sollte unter Linux funktionieren, hat aber hier (Xubuntu 14.04) nicht geklappt. Unter Windows klappt das gar nicht, weil der dort benutzte SSH-Client ziemlich beschränkt ist.

Die Lösung für dieses Problem? Die ssh-config!

SSH hat eine wunderbare Konfigurationsdatei, und dort kann man Aliase anlegen, und dort z.B. auch einen alternativen Port hinterlegen. Diese Datei findet man unter Linux unter ~/.ssh/config und unter Windows unter C:\Benutzer\<Name>\.ssh\config Es kann sein, dass es diese Datei noch nicht gibt und das der Ordner .ssh versteckt ist. Achtung: Die Datei hat keine Endung, wenn man die Datei also unter Windows etwa mit Notepad angelegt aufpassen, dass man ihr nicht versehentlich eine .txt-Endung verpasst. (Dazu beim Speichern den Dateityp auf „Alle Dateien“, nicht „Textdateien“ stellen.

Weiterlesen

Opertunistic Encryption mit Firefox 37 und Ubuntu 14.04 LTS

Firefox 37 hat ein neues Feature: Opertunistic Encryption, oder auch „TLS for http://“. Die Idee ist einfach: Wir versuchen einfach mal, die Seite über HTTPS zu laden, auch wenn das Zertifikat nicht nicht stimmt, behaupten aber auch nicht, die Seite wäre sicher. Einfach, aber wirkungsvoll. Ich finde es aktuell schrecklich, das es entweder verschlüsselt und authentifiziert mit teurem Zertifikat, oder völlig unverschlüsselt gibt. Sollte nicht viel mehr der Unterschied verschlüsselt und nicht authentifiziert (http) oder verschlüsselt und authentifiziert (https) sein?

Natürlich ist es ein leichtes, die Verschlüsselung auszuhebeln, wenn man ein aktiver Angreifer/MITM ist. Aber es hilft gegen passives Belauschen. Und das muss nicht mal die NSA sein, es geht auch um Sachen wie FireSheep. Auf jeden Fall ist die Idee das man so, wenn möglich, ein verschlüsselte Verbindung bekommt, aber da man ja nicht weiß, mit wem man redet, behauptet niemand, das die Verbindung sicher sei.

Weiterlesen

Gnome unter Ubuntu 14.10 wieder entfernen

Nach dem ein Kommilitone die „tolle“ Idee hatte, auf einem gemeinsam genutzten Ubuntu-Rechner Gnome zu installieren (um eine Taskleiste zu haben!) sah danach mein Unity extrem hässlich aus.

Natürlich kann man theoretisch verschiedene Desktops parallel installieren (was ja auch ein cooles Feature ist), aber zumindest Unity und Gnome beißen sich doch sehr stark. So waren etwa die Icon vermixt und auch die Unity-Leiste oben sah sehr nach Gnome aus. Und ich hatte auch das Gefühl, dass der Rechner sehr viel langsamer geworden ist.

Nur wie wird man Gnome wieder los? Das naheliegende

Weiterlesen

Ubuntu 14.04: .htaccess in Apache 2.4 wieder aktivieren

Das Update auf Ubuntu 14.04 macht dem Webentwickler wenig Spaß: Erst ist der PEAR-Installer kaputt, und dann wurde auch noch Apache auf 2.4 aktualisiert, womit sich ja doch einiges ändert. Das wichtigste dürfte wohl die Änderung an der Syntax für die Authentifizierung sein, doch auch die kleineren Änderungen machen sich bemerkbar:

Mit 2.4 wurde der Default-Wert für AllowOverride von All auf None geändert. Leider kommt Ubuntu mit einer ziemlich minimalen Konfiguration für Apache, die gar keine Einstellung für diesen Wert enthält. Dadurch werden jetzt alle .htaccess Dateien deaktiviert! Man kann sich jetzt natürlich streiten, was der sinnvollere Default-Wert ist, aber zumindest für das Desktop-Ubuntu, dass ja doch eher zum entwickeln benutzt wird, fände ich „AllowOverride All“ ganz nett. (AllowOverride steuert, welche Werte der Konfiguration in einer .htaccess Datei überschrieben werden können, besonders auch die beliebten mod_redirect Regeln. Ohne diese Regeln funktionieren die meisten Websites ja gar nicht mehr).

Weiterlesen

Ubuntu 14.04: Fehler in PEAR

Update: Inzwischen gibt es einen Fix (siehe Kommentare), nur kann der auch nicht installiert werden, weil ja der Installier kaputt ist 🙁 Also bitte ein Mal manuell zumindest das Paket „Archive_Tar“ aktualisieren, dann sollte alles funktionieren. Inzwischen landen die herunter geladenen Dateien auch nicht mehr unter /build/buildd/… sondern unter /tmp/pear/download/

So wie es aussieht hat Ubuntu momentan ein kleines Problem mit Pear, dem Packetmanager von PHP: Wenn man versucht ein Packet zu installieren oder zu aktualisieren kommt diese schöne Meldung:

Starting to download Console_Table-1.2.0.tgz (10,206 bytes)
.....done: 10,206 bytes
could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/Console_Table-1.2.0.tgz"
Download of "pear/Console_Table" succeeded, but it is not a valid package archive
Error: cannot download "pear/Console_Table"
Download failed

Weiterlesen

MySQL Dump auf Debian ohne Passwortabfrage

Ich bin gerade dabei auf einem Debian-Server ein Backup-System aufzubauen, und dazu gehört natürlich auch (eigentlich: vor allem!) der Inhalt der Datenbanken. Aber dafür gibt es ja mysqldump. Also mal schnell was in den crontab geschrieben:


mysqldump --all-databases > backup.sql

Dann noch schnell mal den Befehl ausprobiert:


mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect

Hmm… Das ist natürlich ungünstig. MySQL braucht einen Benutzer um sich anzumelden, nur dazu braucht es dann auch ein Passwort. Natürlich kann man jetzt einen Benutzer „backup“ oder so anlegen, nur dann hat man ein Problem: Jeder kann während des Backups mit ps das Passwort des Benutzer sehen. Und ihm kein Passwort geben ist auch keine Option, speziell wenn man phpMyAdmin aus dem Internet erreichbar macht (mache ich natürlich nicht!)

Doch es geht einfacher:

Weiterlesen

Leeres „Serial Port“ Menu in Ardunio unter Linux?

…Abhilfe ist ist einfach:

Strg+Alt+T drücken (Terminal wird geöffnet), und diesen Befehl eingeben:


sudo usermod -aG dialout <Benutzername>

Danach abmelden und wieder anmelden, und schon sollte es funktionieren 🙂

Hintergrund: Ich bastele gerade mal wieder an meinem LED-Würfel, und da ich unter Windows zu viele Probleme mit avr-gcc usw. hatte, aber ich schnell eine Virtual-Box VM mit Ubuntu aufgesetzt. Dort kann man auch ganz wunderbar USB-Geräte, wie meinen USB-auf-Seriell-Wandler weiterleiten. Nur leider wollte Arduino den Wandler nicht erkennen: Geholfen hat mir dann dieser Thread: Leider wird so ein Wandler von udev der Gruppe „dailout“ zu geordnet, und in dieser ist man leider nicht standardmäßig. Mit dem Befehl oben fügt man sich selbst der Gruppe hinzu, und danach darf Arduino dann auf auch auf das Gerät zugreifen.

Wieder ein Problem weniger 😉

Segementation Fault unter Linux/Mac debuggen

Für die Uni muss ich ja nun viel C schreiben, und da gibt es ja nun mal diese wunderbaren Pointer. Sollte man davon mal eine falsch setzen bricht das Programm ab, und es gibt eine wunderbare Fehlermeldung: Segementation Fault: 11. Jetzt heißt es also, den Fehler mit jede Menge printf() eingrenzen und nach sehr viel Suchen dann evtl. auch finden.

Nach den ich heute mal wieder einen Pointer falsch hatte, habe ich mal nachgesehen, ob es nicht auch einfacher geht… Geht es natürlich… Also eine kleine Anleitung! Ich habe extra für euch ein Programm mit Fehler gebaut: Sowas würde mir sonst natürlich nie passieren 😉

Was nun? Als ersten müssen wir dem Betriebsystem sagen, dass es einen Speicherdump (coredump) erstellen soll, wenn ein Programm abstürzt. Die Dinger werden ziemlich groß, deswegen ist das normalerweise ausgeschaltet. Um es für die akutelle Shell zu aktivieren geben wir ulimit -c unlimited ein. Damit wird bei nächsten Absturz ein core-dump erstellt. Damit kommen wir schon recht weit, doch wir können das Programm noch im Debug-Modus kompilieren, damit wir noch besser sehen, was da schief gelaufen ist. Dazu einfach gcc den Parameter -g mitgeben (ja, clang kann das auch). Danach lassen wir das Programm wieder abstürzen:Na, aufgepasst? Da steht jetzt (core dumped). Nun schauen wir mal in den Ordner /cores, dort liegt unser core dump! Und er ist (für dieses einfache Programm) >300 MB groß! Das war das, was ich oben meinte…

Weiterlesen