Entschuldigen Sie bitte, wenn die Frage irreführend ist. Ich versuche zu verstehen, wie die Umgebungseinstellungen für den Benutzer „mysql“ funktionieren.
Ich folgedieser Leitfadenum eine Oracle-Datenbank von einer MariaDB-Installation aus zu verbinden.
Es ist mir gelungen, die erforderlichen Bibliotheken zu installieren und über die Root-Befehlszeile eine Verbindung herzustellen.
Aber beim Verbindungsversuch von MariaDB erhalte ich diese Meldung:
[unixODBC][Treiber-Manager]Bibliothek „/home/oraclec/instantclient_12_1/libsqora.so.12.1“ kann nicht geöffnet werden: Datei nicht gefunden
Dasselbe passierte beim ersten Verbindungsversuch über die Root-Befehlszeile. Ich löste das Problem, indem ich der /root/.bash_profile
Datei die folgenden Zeilen hinzufügte:
CLIENT_HOME=/home/oraclec/instantclient_12_1 ; export CLIENT_HOME
LD_LIBRARY_PATH=/home/oraclec/instantclient_12_1 ; export LD_LIBRARY_PATH
Also versuche ich, dasselbe für den Benutzer „mysql“ zu tun, aber .bash_profile
für diesen Benutzer gibt es kein a.
Abschließend stellt sich die Frage, wo ich diese Pfade platzieren muss, damit der Benutzer „mysql“ darauf zugreifen kann?
Notiz:Auf dem Server läuft CentOS 6.5.
Antwort1
Sie können Ihre Variablen aus dem Init-Skript an MySQL übergeben, z /etc/init.d/mysql
. B.:
.bash_profile
Wenn Sie dennoch ein (oder .bashrc
) für den MySQL-Benutzer erstellen müssen , gehen Sie wie folgt vor:
vi ~mysql/.bash_profile
Wenn für diesen Benutzer kein Home vorhanden ist, erstellen Sie eines und aktualisieren Sie es /etc/passwd
.
Antwort2
Es kann nicht schaden, es für alle Benutzer in/etc/bash.bashrc.
Anstatt die Variable LD_LIBRARY_PATH zu verwenden, können Sie auch den Bibliothekspfad in/etc/ld.so.conf. Vergiss nicht, hinterherzulaufen ldconfig
.