So ändern Sie das Datenbankdatenspeicherverzeichnis in MySQL

So ändern Sie das Datenbankdatenspeicherverzeichnis in MySQL

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:
  • Zwei Möglichkeiten zum Speichern von Scrapy-Daten in einer MySQL-Datenbank (synchron und asynchron)
  • Python-Beispiel zum Speichern von JSON-ähnlichen Daten in MySQL
  • So installieren Sie MySQL 5.7 unter Ubuntu und konfigurieren den Datenspeicherpfad
  • Detailliertes Beispiel für MySQL-Datenspeicherprozessparameter
  • So verschieben Sie den Datenspeicherort von mysql5.7.19 in Centos7
  • So implementieren Sie das MySQL-Umschalten des Datenspeicherverzeichnisses
  • Lösung zum Ändern des Datenspeicherorts der Datenbank in MySQL 5.7
  • Details zur MySQL-Datenbankarchitektur
  • MySQL-Speicherung räumlicher Daten und Funktionen

<<:  Docker schließt die Implementierung des FTP-Dienstaufbaus mit einer Befehlszeile ab

>>:  So führen Sie MySQL mit Docker-Compose aus

Artikel empfehlen

Eine kurze Analyse von MySQL-Verbindungen und -Sammlungen

Join-Abfrage Eine Join-Abfrage bezieht sich auf e...

So verwenden Sie weniger im WeChat-Applet (optimale Methode)

Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...

Detaillierte Erklärung der Entwurfsmuster des JavaScript-Frameworks

Inhaltsverzeichnis mvc MVP mvv Die Quelle von Vue...

6 Möglichkeiten zur eleganten Handhabung von Objekten in JavaScript

Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...

Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)

RocketMQ ist eine verteilte, warteschlangenbasier...

JavaScript-Implementierung von Lupendetails

Inhaltsverzeichnis 1. Rendern 2. Umsetzungsprinzi...

Allgemeine Funktionen der MySQL-Grundlagen

Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...

JavaScript zum Implementieren eines Dropdown-Listenauswahlfelds

In diesem Artikelbeispiel wird der spezifische Ja...

Detailliertes Tutorial zur Installation von mysql-8.0.20 unter Linux

** Installieren Sie mysql-8.0.20 unter Linux ** U...

Vue.js implementiert ein einfaches Faltpanel

In diesem Artikelbeispiel wird der spezifische Co...