Anhang A: Probleme und h¨aufige Fehler 633
Wenn Sie versuchen, ein Programm laufen zu lassen und Fehler f¨ur unreferenzierte Symbole
erhalten, die mit mysql_ anfangen, oder den Fehler, dass die mysqlclient-Bibliothek
nicht gefunden werden kann, heißt das, dass Ihr System die gemeinsam genutzte
libmysqlclient.so-Bibliothek nicht findet.
Das Problem beheben Sie, indem Sie Ihr System anweisen, dort nach gemeinsam genutzten
Bibliotheken zu suchen, wo sich die Bibliothek befindet, mit einer der folgenden Methoden:
• F¨ugen Sie den Pfad zum Verzeichnis, in dem Sie libmysqlclient.so haben, der LD_
LIBRARY_PATH-Umgebungsvariablen hinzu.
• F¨ugen Sie den Pfad zum Verzeichnis, in dem Sie libmysqlclient.so haben, der LD_
LIBRARY-Umgebungsvariablen hinzu.
• Kopieren Sie libmysqlclient.so an eine Stelle, die von Ihrem System durchsucht
wird, wie ‘/lib’, und aktualisieren Sie die Informationen ¨uber gemeinsam genutzte
Bibliotheken, indem Sie ldconfig ausf¨uhren.
Eine weitere M¨oglichkeit, dieses Problem zu l¨osen, besteht darin, Ihr Programm statisch
mit -static zu linken oder die dynamischen MySQL-Bibliotheken zu entfernen, bevor Sie
Ihren Code linken. Im letzteren Fall sollten Sie sicherstellen, dass keine anderen Programme
die dynamischen Bibliotheken benutzen!
A.3.2 Wie man MySQL als normaler Benutzer laufen l¨aßt
Der MySQL-Server mysqld kann von jedem beliebigen Benutzer gestartet werden und unter
diesem laufen. Damit mysqld als Unix-Benutzer benutzername l¨auft, m¨ussen Sie folgendes
tun:
1. Halten Sie den Server an, falls er l¨auft (benutzen Sie mysqladmin shutdown).
2.
¨
Andern Sie die Datenbankverzeichnisse und Dateien so, dass benutzername die Berech-
tigungen zum Lesen und Schreiben von Dateien darin hat (das m¨ussen Sie eventuell
als Unix-root-Benutzer machen):
shell> chown -R benutzername /pfad/zu/mysql/datadir
Wenn Verzeichnisse oder Dateien im MySQL-Daten-Verzeichnis symbolische Links sind,
m¨ussen Sie auch diesen Verkn¨upfungen folgen und die Verzeichnisse und Dateien, auf
die sie zeigen, ¨andern. chown -R kann SymLinks f¨ur Sie folgen.
3. Starten Sie den Server als Benutzer benutzername oder, wenn Sie MySQL-Version
3.22 oder sp¨ater benutzen, starten Sie mysqld als Unix-root-Benutzer und benutzen
Sie die --user=benutzername-Option. mysqld schaltet um und l¨auft dann unter Unix-
Benutzer benutzername, bevor er irgend welche Verbindungen annimmt.
4. Um den Server automatisch beim Hochfahren des Systems unter dem angegebenen
Benutzernamen zu starten, f¨ugen Sie zur [mysqld]-Gruppe der ‘/etc/my.cnf’-
Optionendatei oder der ‘my.cnf’-Optionendatei im Datenverzeichnis des Servers eine
user-Zeile hinzu, die den Benutzernamen angibt. Beispiel:
[mysqld]
user=benutzername
Nunmehr sollte Ihr mysqld-Prozess korrekt unter dem Unix-Benutzer benutzername laufen.
Dennoch hat sich eins nicht ge¨andert: Die Inhalte der Berechtigungstabellen. Vorgabem¨aßig
Comentarios a estos manuales