So ändern Sie die MySQL-Portnummer in Ubuntu

8

Wie kann ich die Portnummer von MySQL von 3306 auf die von mir gewählte Nummer (1023) in Ubuntu 13.10 ändern? Ich habe versucht, indem ich die Portnummer in der Datei bearbeitete : /etc/mysql/my.cnf. Aber nach dieser Änderung startet MySQL nicht. Bitte führe mich, damit ich das beheben kann.

Manpreet
quelle

Antworten:

5

Möglicherweise gibt es mehrere Dateien mit MySQL-Konfiguration. Ihr vollständiger Pfad kann in der Datei /etc/mysql/my.cnfdurch beginnende Zeilen vorhanden sein !includedir. Für eine Probe ist meine:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Nachdem ich das zweite Verzeichnis aufgelistet hatte, fand ich eine Datei mit dem Namen:

/etc/mysql/mysql.conf.d/mysqld.cnf

Sie müssen also die Portnummer in dieser Datei ändern.

Der beste Weg für Sie ist das Anzeigen der Datei:

/etc/my.cnf

oder

/etc/mysql/my.cnf

und dann Ändern der Portnummer in einer Datei in einem der Verzeichnisse, einschließlich der Datei my.cnf .

Mohsen Abasi
quelle
3

MySQL Server und Client verwenden eine Datei namens my.cnf. Sie müssen /etc/my.cnf (globale mysqld-Konfigurationsdatei) öffnen, um einen neuen Port anzugeben. MySQL Change Default Port

Öffnen Sie die Datei /etc/my.cnf:

# vi /etc/my.cnf

Neuen Port 5123 einstellen:

port=5123

Hier ist meine Beispieldatei /etc/my.cnf:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=5123
old_passwords=1
bind = 10.10.29.66
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 100M
max_allowed_packet = 1M
thread_cache_size = 8
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
local-infile=0
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqldump]
quick
max_allowed_packet = 16M

Speichern und schließen Sie die Datei. Starten Sie mysqld neu:

# service mysqld restart

Bitte beachten Sie, dass Sie nach dem Ändern des Ports alle Ihre PHP-, Perl- und Python-Skripte einschließlich der Iptables-Skripte aktualisieren müssen.

Maythux
quelle
Es sollte wahrscheinlich beachtet werden, dass die Standardkommunikationsmethode für MySQL auf localhost eine Socket-Datei ist /var/lib/mysql/mysql.sock, nicht TCP / IP.
Vidarlo
3

Um MySQL oder einen anderen Dienst an einer Portnummer unter 1024 zu starten, müssen Sie den Dienst als rootBenutzer starten .

Bert
quelle
3

* UPDATE "- Siehe Berts Antwort unten. Ja, ich habe my.cnf drei Änderungen 2 für Port vorgenommen und Benutzer in" root "geändert. Ja, es beginnt als Port 1023. Netstat -tln zeigt 1023 als Listener. Ein großes Lob an Bert ...

NUR 1023 versucht ... und festgestellt, dass die Meldung "Start fehlgeschlagen" ... überprüft wurde und 1023 RESERVIERT ist 1023 TCP UDP Reserviert [1] Offiziell

Sie müssen eine andere Nummer verwenden ... soz ...

Denken Sie daran, dass es in /etc/mysql/my.cnf "zwei" Stellen gibt, an denen Sie die MySQL-Portnummer ändern können

Der Erste:

[Client] Port = 1234

Der Zweite:

[mysqld] port = 1234

Starten Sie dann den Dienst neu ... hoffe, das hilft auch ... hat gerade für mich gearbeitet, um ihn zu testen ...

Ein Niemand
quelle
Ich habe beim Lesen des ersten Kommunikationspakets die Verbindung zum MySQL-Server verloren, Systemfehler: 0 mit HeidiSql, nachdem der Standardport in my.cnf geändert wurde. Es stellte sich heraus, dass ich den mysqld-Port nicht bearbeitet hatte (nur den Client-Port). Die Verwendung netstat -tlnhat beim Debuggen wirklich geholfen, da sich herausstellte, dass der Port immer noch auf der Standardeinstellung ausgeführt wurde.
TryHarder
1

Für Ubuntu Desktopungefähr die 18:04Version war genug, um die /etc/mysql/mysql.conf.d/mysqld.cnfDatei zu bearbeiten .

Von:

[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
log-error   = /var/log/mysql/error.log

Zu:

[mysqld]
port        = 3308 (or other number) <-------------------
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
log-error   = /var/log/mysql/error.log

Schließlich ist ein Neustart des Servers sudo service mysql restartim Terminal obligatorisch

Sie können die neuen Einstellungen, die den show variables like '%port%';Befehl ausführen, in der folgenden Position bestätigen MySQL Console:

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| admin_port               | 33062 |
| large_files_support      | ON    |
| mysqlx_port              | 33060 |
| mysqlx_port_open_timeout | 0     |
| port                     | 3308  |
| report_host              |       |
| report_password          |       |
| report_port              | 3308  |
| report_user              |       |
| require_secure_transport | OFF   |
+--------------------------+-------+
10 rows in set (0.02 sec)

Wie du sehen kannst habe ich jetzt das portmit3308

Manuel Jordan
quelle