PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL und DynDNS



Re-Z01
02.02.2008, 15:38
Hallo,

ich habe bei mir einen Debian Etch Server mit MySQL 5 am laufen.

Per DynDNS kann ich mit phpMyAdmin auf die Datenbanken zugreifen.
Ich nutze dafür die "Auth"-Methode.

Wenn ich mich allerdings mit dem MySQL Administrator oder MySQL QueryBrowser verbinden möchte, erhalte ich folgende Fehlermeldung :

MySQL Fehlernummer 2013
Lost connection to MySQL server during query

Das Gleiche passiert auch, wenn ich versuche mich per ODBC-Treibern zu verbinden.

Als Router nutze ich eine AVM Fritz!Box WLAN 7050
Muss ich dort etwas bestimmtes einstellen? ?(
Muss ich die Benutzertabelle in MySQL irgendwie anpassen? ?(

Bin für jeden Hinweis dankbar

supersucker
02.02.2008, 18:55
Naja, da könnte es Ursachen wie Sand am Meer geben...

Fangen wir mal von vorne an:

1.)

Klappt ein


telnet dein_mysql_server dein_port

?

2.)

Schon mal geschaut, ob dein mysql-Server evtl. nur localhost-connections aktzeptiert?

Wenn du über http(s) -> phpmyadmin gehst, macht ja phpmyadmin die schlußendliche Verbindung auch von localhost -> localhost.

Das wäre eine Erklärung, warum es mit phpmyadmin klappt, mit den von dir genannten tools nicht.

3.)

Poste mal die my.cnf

bitmuncher
02.02.2008, 23:33
1. Wenn du den MySQL-Query-Browser für einen Remote-Zugriff nutzt, muss der MySQL-Port 3306 freigegeben und vom Router geforwardet werden (sofern der MySQL-Server nicht auf dem router läuft).
2. Per Default ist ein root-Zugriff auf die Datenbank nur über localhost möglich. Du musst daher die Hostmaske für die Benutzer, die du remote nutzen willst auf '%' setzen um sie von jeder beliebigen Adresse aus nutzen zu können.

Re-Z01
03.02.2008, 14:13
Tja, also das der MySQL-Server nur lokale Verbindungen zulässt, kann ich nicht bestätigen. Leider funktioniert der bind adress-Befehl auch nicht mit dem DynDNS-Wert.

Hier ist meine my.cnf :

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
bind-address = 192.168.178.2
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
#log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

#
# * NDB Cluster
#
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
#
# The following configuration is read by the NDB Data Nodes (ndbd processes)
# not from the NDB Management Nodes (ndb_mgmd processes).
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1


#
# * IMPORTANT: Additional settings that can override those from this file!
#
!includedir /etc/mysql/conf.d/

bitmuncher
03.02.2008, 23:58
Nimm das bind-address raus. Dann lauscht der Server an allen Interfaces. Dann sorge dafür, dass der Port 3306 auf dem Server freigegeben bzw. nicht durch eine Firewall blockiert ist und dass der Router Anfragen auf diesen Port auf deinen Server weiterleitet. Lege dir ausserdem einen Benutzer an, mit dem du von überall auf den Server zugreifen kannst.



grant all privileges to 'meinuser'@'%' identified by 'meinpasswort';
flush privileges;


Danach solltest du mit MySQL-Clients wie MySQL-Query-Browser, MySQL-Administrator usw. auch remote über die DynDNS-Adresse (sofern diese überhaupt erreichbar ist) auf den MySQL-Server zugreifen können.