Hintergrund Ich habe einen Projektdienst, der AWS EC2 verwendet. Aus Sicherheits- und Leistungsgründen plane ich vor Kurzem, die MySQL-Datenbank von Tencent Cloud auf AWS RDS zu migrieren. Aufgrund der Exportregeln und Sicherheitsgruppen von AWS muss ich den Standardport 3306 und die Bind-Adresse ändern, um den Zugriff auf bestimmte IP-Adressen einzuschränken. Ich habe auf Stackoverflow nach einer Möglichkeit gesucht, dies zu ändern, aber die meisten Informationen im Internet sind veraltet und entsprechen nicht der aktuellen gängigen MySQL-Version (es wird MySQL 5.7.27 verwendet und das Betriebssystem ist Ubuntu 18.04.1 LTS). Verfahren Die beliebteste Antwort auf Stackoverflow ist sehr einfach und kann in nur drei Schritten geändert werden /etc/my.cnf // Konfigurationsdatei suchen Port = 3306 // Inhalt ändern sudo service mysql restart // MySQL neu starten In Echtzeit ist es jedoch nicht so einfach. Die obige Antwort funktioniert möglicherweise für die alte Version, aber in der neuen Version können Sie unter /etc/my.cnf überhaupt nichts finden. Die Datei existiert nicht. Dann habe ich die offizielle Dokumentation überprüft und die Konfigurationsdatei im Verzeichnis /etc/mysql/my.cnf gefunden. Aber denken Sie nicht, dass alles in Ordnung ist, nachdem Sie die Konfigurationsdatei gefunden haben. Wenn Sie die Datei öffnen, werden Sie feststellen, dass sich der Stil geändert hat, da die Konfigurationsdatei keinen Inhalt enthält, aber auf zwei andere Konfigurationsordner verweist. Der spezifische Inhalt von /etc/mysql/my.cnf ist wie folgt !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ OK, zumindest haben wir eine Ahnung. Wir folgen dem Pfad und sehen uns jede Datei in den beiden Verzeichnissen an. Schließlich sehen wir, dass mysql.conf.d/mysqld.cnf die Datei zu sein scheint, nach der wir suchen (die offizielle Dokumentation bestätigt dies ebenfalls). Wenn wir sie öffnen, können wir die Dateieigenschaften sehen, die wir ändern müssen. [mysqld] Gewinn = 3306 bind-address = 127.0.0.1 // Nur lokalen Zugriff zulassen Nachdem ich die Konfigurationsparameter nach Bedarf geändert hatte, dachte ich, die Sache sei erledigt. Als ich den Dienst mit „sudo service mysql restart“ neu startete, stellte ich fest, dass mein Intranet-Computer immer noch nicht erreichbar war. Ich überprüfte mit „netstat -ntlp“ die lokale Adresse und die ausländische Adresse und stellte fest, dass die von mir geänderte Konfiguration nicht wirksam war. Ich geriet in tiefe Selbstzweifel, als ob der Hinweis hier unterbrochen worden wäre. Dann erwähnten einige Internetnutzer, dass es sich möglicherweise um ein Problem mit den Dateiberechtigungen handelt. Wenn die Dateiberechtigung zu groß ist (global beschreibbar), liest MySQL aus Sicherheitsgründen die Konfigurationsdatei nicht, sondern liest seine eigene Konfigurationskopiedatei. Ich habe den Befehl ausgeführt und die folgende Warnung angezeigt mysql --Hilfe | grep meine.cnf mysql: [Warnung] Für alle beschreibbare Konfigurationsdatei '/etc/mysql/mysql.conf.d/mysqld.cnf' wird ignoriert. Reihenfolge der Präferenz, my.cnf, $MYSQL_TCP_PORT, /etc/meine.cnf /etc/mysql/meine.cnf ~/.meine.cnf Das Obige bedeutet, dass die Datei von MySQL ignoriert wird, da das Risiko besteht, dass sie global beschreibbar ist, und listet die Reihenfolge auf, in der MySQL die Konfigurationsdatei liest. Hier können wir sehen, dass MySQL mehrere my.cnf-Konfigurationsdateien hat, von denen einige globale Konfigurationen und einige lokale Konfigurationen sind. Nachdem wir die Hinweise gefunden haben, ist die Handhabung viel einfacher. Wir ändern die Dateiberechtigungen und sehen uns mysql --help erneut an, um festzustellen, dass die Warnung verschwunden ist. Die spezifischen Befehle lauten wie folgt: sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf mysql --Hilfe | grep meine.cnf Reihenfolge der Präferenz, my.cnf, $MYSQL_TCP_PORT, /etc/meine.cnf /etc/mysql/meine.cnf ~/.meine.cnf Führen Sie dann „sudo service mysql restart“ aus und überprüfen Sie, ob die lokalen und fremden Adressen die in my.cnf konfigurierten Inhalte geworden sind, die geänderte Konfiguration jedoch erfolgreich implementiert wurde. Dies bestätigt, dass das Sicherheitsproblem der globalen Lesbarkeit der Datei die Ursache ist. Zusammenfassen Schließlich führten die MySQL-Sicherheitsregeln dazu, dass die Konfigurationsänderung nicht wirksam wurde. Natürlich kennen wir diese Regel in den meisten Fällen nicht (wenn wir die Dokumentation auf der offiziellen Website nicht vollständig gelesen haben). Nach diesem Problem habe ich die folgende Zusammenfassung, um Ihnen zu helfen, Umwege bei der Fehlerbehebung zu vermeiden und das eigentliche Problem so schnell wie möglich zu finden:
Das ist alles für diesen Artikel. Ich hoffe, dass der Inhalt dieses Artikels für Ihr Studium oder Ihre Arbeit von gewissem Referenzwert ist. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Miniprogramm zur Implementierung einer einfachen Listenfunktion
>>: MySQL vollständig deinstallieren. Persönlicher Test!
Der spezifische Code lautet wie folgt: <Stil&g...
Finden Sie das Problem Schauen wir uns zunächst d...
In diesem Artikelbeispiel wird der spezifische Ja...
1. kein Aufhebens Führen Sie das Programm so aus,...
Neue Funktionen in MySQL 8: Meine persönliche Mei...
Ursprüngliche Adresse: https://blog.csdn.net/m0_4...
Inhaltsverzeichnis Zyklus für für-in für-von währ...
So installieren Sie GRUB für Linux Server Sie kön...
In diesem Artikelbeispiel wird der spezifische Co...
Ich habe kürzlich Dreamweaver verwendet, um eine P...
In diesem Artikel werden hauptsächlich die Unters...
eins. Einführung in das Mysql Binlog-Format Das M...
Weiterleitung zwischen zwei verschiedenen Servern...
1. Melden Sie sich mit dem IE-Browser beim VPN an...
Es gibt zwei Möglichkeiten: 1. Servicemethode Übe...