Vorwort Die Standarddatenbankdatei der MySQL-Datenbank befindet sich in /var/lib/mysql. Manchmal ist es aufgrund der Speicherplanung und anderer Gründe erforderlich, das Datenspeicherverzeichnis der MySQL-Datenbank zu ändern. Nachfolgend finden Sie eine Zusammenfassung der Schritte des praktischen Ablaufs. Lassen Sie uns ohne weitere Umschweife einen Blick darauf werfen. So geht's: 1: Bestätigen Sie das MySQL-Datenbankspeicherverzeichnis [root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir Passwort eingeben: | Datenverzeichnis | /var/lib/mysql/ 2: Beenden Sie den MySQL-Dienst Vor dem Ändern des MySQL-Datenverzeichnisses muss der MySQL-Dienst beendet werden. Methode 1: [root@DB-Server ~]# Dienst MySQL-Status MySQL läuft (9411) [ OK ] [root@DB-Server ~]# Dienst MySQL stoppen MySQL wird heruntergefahren. [OK] [root@DB-Server ~]# Methode 2: [root@DB-Server ~]# /etc/rc.d/init.d/mysql status MySQL läuft (8900) [ OK ] [root@DB-Server ~]# /etc/rc.d/init.d/mysql stop MySQL wird heruntergefahren. [OK] [root@DB-Server ~]# 3: Erstellen Sie ein neues Datenbankspeicherverzeichnis [root@DB-Server ~]# cd /u01 [root@DB-Server u01]# mkdir mysqldata 4: Verschieben Sie das MySQL-Datenverzeichnis an einen neuen Speicherort [root@DB-Server ~]# mv /var/lib/mysql /u01/mysqldata/ 5: Ändern Sie die Konfigurationsdatei my.cnf Nicht alle Versionen enthalten die Konfigurationsdatei my.cnf. In MySQL 5.5 kann ich die Konfigurationsdatei my.cnf nicht finden. Bei einigen MySQL-Versionen befindet sich diese Datei in /usr/my.cnf. Wenn sich im Verzeichnis /etc/ keine Konfigurationsdatei my.cnf befindet, suchen Sie die *.cnf-Datei in /usr/share/mysql/, kopieren Sie eine davon nach /etc/ und benennen Sie sie in my.cnf um. Der Befehl lautet wie folgt: [root@DB-Server mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf Bearbeiten Sie die Datei /etc/my.cnf und ändern Sie den Socket-Parameter MySQL 5.5-Version # Die folgenden Optionen werden an alle MySQL-Clients weitergegeben [Kunde] #password = Ihr_Passwort Port = 3306 Socket = /u01/mysqldata/mysql/mysql.sock # Hier folgen Einträge für einige spezifische Programme # Der MySQL-Server [mysqld] Port = 3306 Socket = /u01/mysqldata/mysql/mysql.sock externe Verriegelung überspringen Schlüsselpuffergröße = 16 M max_zulässiges_Paket = 1M table_open_cache = 64 Sortierpuffergröße = 512 KB Nettopufferlänge = 8 KB Lesepuffergröße = 256 KB Read_Rnd_Buffer_Größe = 512 KB myisam_sort_buffer_size = 8M 6: Ändern Sie das Startskript /etc/init.d/mysql Ändern Sie den Parameter datadir in datadir=/u01/mysqldata/mysql/ 7: Starten Sie den MySQL-Dienst und überprüfen Sie den MySQL-Datenbankpfad [root@DB-Server ~]# service mysql start MySQL wird gestartet..[ OK ] [root@DB-Server ~]# mysqladmin -u root -p variables | grep datadir Passwort eingeben: | Datenverzeichnis | /u01/mysqldata/mysql/ Meine Fragen: 1: Vor dem Ändern des Datenbankspeicherverzeichnisses befindet sich im Verzeichnis /var/lib/mysql/ keine mysql.sock-Datei. Nach der Installation der obigen Konfiguration wird die mysql.sock-Datei generiert. Bezüglich der Datei mysql.sock habe ich nach Informationen gesucht: mysql.sock ist eine Datei, die für Socket-Verbindungen verwendet wird. Das heißt, diese Datei existiert nur, wenn Ihr Daemon gestartet wird. Ihr MySQL-Programm (dieses Programm ist der Client, der Server ist mysqld) kann jedoch wählen, ob die Datei mysql.sock zum Herstellen einer Verbindung verwendet werden soll (da diese Methode nur zum Herstellen einer Verbindung mit dem lokalen MySQLD auf einem Unix-Host geeignet ist), und zwar für jeden Typ von nicht lokalem Host. Ist diese Datei unbedingt erforderlich? Dies bedarf weiterer Klärung. 2: Ich habe gesehen, wie einige Internetnutzer online zusammengefasst haben, wie man den MySQL-Datenpfad ändert. Einige davon erfordern eine gewisse Bearbeitung der Berechtigungen des neu erstellten Verzeichnisses, während andere keine Autorisierung der Verzeichnisberechtigungen erfordern. Ich habe sie nicht bearbeitet und es gab kein Problem. Soll ich das neue Datenbankverzeichnis autorisieren? 3: Als ich die Version MySQL_5.6.20 getestet habe, habe ich my.cnf nicht geändert, sondern nur das Startskript /etc/init.d/mysql, und es gab überhaupt kein Problem. Es wird auch keine myssql.sock-Datei generiert. 4: Beachten Sie, dass beim Starten des MySQL-Dienstes nach der Änderung des MySQL-Datenpfads einige Fehler auftreten können, wenn Selinux nicht deaktiviert ist. Die Erklärung hierfür ist, dass Hintergrunddienste entsprechende Berechtigungen für die entsprechenden Verzeichnisse benötigen und dem Standardpfad mysql /var/lib/mysql entsprechende Richtlinien hinzugefügt wurden. Nachdem der Pfad geändert wurde, wird der Hintergrundprozess aufgrund fehlender entsprechender Richtlinien von selinux daran gehindert, Dateien zu lesen, was zu Berechtigungsfehlern führt. Schalten Sie also entweder Selinux aus oder ändern Sie den Dateisicherheitskontext. [root@DB-Server mysql]# /etc/init.d/mysql start MySQL wird gestartet....Der Server wurde beendet, ohne die PID-Datei (/u01/mysqldata/mysql//DB-Server.localdomain.pid) zu aktualisieren.[FEHLER] [root@DB-Server mysql]# [root@DB-Server mysql]# chcon -R -t mysqld_db_t /u01/mysqldata/mysql/ [root@DB-Server mysql]# /etc/init.d/mysql start MySQL wird gestartet. [ OK ] [root@DB-Server mysql]# Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Quellen: http://database.ctocio.com.cn/tips/449/7566949.shtml https://www.jb51.net/article/150089.htm https://www.jb51.net/article/150090.htm Das könnte Sie auch interessieren:
|
<<: Docker schließt die Implementierung des FTP-Dienstaufbaus mit einer Befehlszeile ab
>>: So führen Sie MySQL mit Docker-Compose aus
Join-Abfrage Eine Join-Abfrage bezieht sich auf e...
Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...
Inhaltsverzeichnis mvc MVP mvv Die Quelle von Vue...
Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...
Dieser Artikel beschreibt die Linux-Dateiverwaltu...
RocketMQ ist eine verteilte, warteschlangenbasier...
Inhaltsverzeichnis 1. Rendern 2. Umsetzungsprinzi...
Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...
Bei der Verwendung von Navicat zum Herstellen ein...
Viele Unternehmen bieten derzeit Sonderaktionen m...
In diesem Artikelbeispiel wird der spezifische Ja...
Ich lerne derzeit etwas über Front-End-Leistungsop...
Code kopieren Der Code lautet wie folgt: <vor&...
** Installieren Sie mysql-8.0.20 unter Linux ** U...
In diesem Artikelbeispiel wird der spezifische Co...