Skocz do zawartości
Zaloguj się, aby obserwować  
michkk

Serwer Mysql Dopuszczający Połączenia Z Zew. Ip

Polecane posty

Witam. Czy zna ktoś firmy oferujące bazy mysql do których można połączyć się z zewnętrznych ip. Potrzebne jest mi to po to ponieważ piszę program działający lokalnie na komputerze i chciałbym aby mógł dodawać wpisy do bazy. Ewentualnie może ktoś wie jak to zrealizować na vpsie w hosteurope, panel plesk. Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam. Tylko że ja nie mam w pliku opcji disable networking, moja zawrtosc pliku:

# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 124M where MySQL is used together with
# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/lib/mysql) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password	= your_password
port		= 3306
socket		= /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 8M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 4M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
# 
#skip-networking

# Replication Master Server (default)
# binary logging is required for replication
# log-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id	= 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#	the syntax is:
#
#	CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#	MASTER_USER=<user>, MASTER_PASSWORD=<password>;
#
#	where you replace <host>, <user>, <password> by quoted strings and
#	<port> by the master's port number (3306 by default).
#
#	Example:
#
#	CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#	MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#	start replication for the first time (even unsuccessfully, for example
#	if you mistyped the password in master-password and the slave fails to
#	connect), the slave will create a master.info file, and any later
#	change in this file to the variables' values below will be ignored and
#	overridden by the content of the master.info file, unless you shutdown
#	the slave server, delete master.info and restart the slaver server.
#	For that reason, you may want to leave the lines below untouched
#	(commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id	   = 2
#
# The replication master for this slave - required
#master-host	 =   <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user	 =   <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =   <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port	 =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin

# Point the following paths to different dedicated disks
#tmpdir		= /tmp/		
#log-update 	= /path-to-dedicated-directory/hostname

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 4M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

# The safe_mysqld script
[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A czy przy próbie połączenia wywala Ci błąd - access denided? Jeśli tak, to błędnie podajesz usera, pamiętaj - login_costam, również sprawdź czy nie masz jakiś regułek w iptables : iptables -L, które mogą blokować wejście na port 3306. Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie możliwe że podaje błednie usera bo na przykład jak łącze sie myadminem z panelu serwera to mam napisane w nim użytkownik@localhost, a jak łącze sie z poziomu php na serwerze to podaje uzytkownika poprostu "uzytkownik". (Próbowałem wpisywac "uzytkownik" oraz "uzytkownik@localhost", nie działą) A próbując połączyć się pojawia sie "serwer nie istnieje lub nie uzyskano do niego dostepu". A jako adres serwera podawałem http:://mójip:3306 - nie działa, bez wpisania 3306 też nie działa. Jak coś wymyśle sam to napisze. Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chyba jednak coś mam źle w itables bo jak wpisałem w przegladarke adres: http://mojip:3306 to sie wyswietla w przegladarce napis "mój ip(ip mojego łącza internetowego) is not allowed to connect to this MySQL server". Oczywiście zamiast mójip wpisuje ip vpsa. Rozumiem że nie ma pliku tekstowego konfiguracyjnego iptable, da sie tylko konfigurować prze ssh?

 

Zastanawia mnie dlaczego 99% hostingów nie jest skonfigurowanych do łączenia się z zew. ip. Chyba jak się lepiej naucze konfigurować serwery to otworze wlasny hosting mysql :-) Przecież są też ludzie którzy piszą programy działające lokalnie które korzytają z danych z serwera. Przykład: pisze prosty program do wprowadzania zamówień, ofert, firma posiada 3 oddziały w różnych miastach. Pracownik w jednym mieście wprowadza zamówienie do programu, program automatycznie dodaje wpis do bazy. Pracownik w drugim mieście od razu ma te dane w swojej kopii programu(program co kilka sekund sprawdza czy są nowe zamówienia w bazie). Oszczędność czasu i pieniedzy na telefony.

 

Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

michkk względy bezpieczenstwa.

conajmniej polowa dopuszcza połączenie po dopisaniu ip , np w cPanelu robi to sam user.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W jakim sposób moge sprawdzić czy port mysql mam zablokowany(a chyba mam) dla zawnętrznych adresów w iptables, oraz jak go odblokować. Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrick

W jakim sposób moge sprawdzić czy port mysql mam zablokowany(a chyba mam) dla zawnętrznych adresów w iptables,

iptables -L sprawdz czy jest port na ktorym slucha twoj mysql.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam. Przeczytałem na stronie Link że trzeba dodać w tabeli mysql wpis "%". Wiec połączyłem się jako root przez ssh z vpsem, ale po wpisaniu komendy mysql otrzymuje taką odpowiedź "Access denied for user 'root'@'localhost'". To nawet root nie ma dostępu? Dodam jeszcze że jak wpisałem "mysql -u user -p" to polaczylem poprawnie z inna bazą założoną prze pleska. Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Witam. Przeczytałem na stronie Link że trzeba dodać w tabeli mysql wpis "%". Wiec połączyłem się jako root przez ssh z vpsem, ale po wpisaniu komendy mysql otrzymuje taką odpowiedź "Access denied for user 'root'@'localhost'". To nawet root nie ma dostępu? Dodam jeszcze że jak wpisałem "mysql -u user -p" to polaczylem poprawnie z inna bazą założoną prze pleska. Pozdrawiam.

Baza danych użytkowników daemona MySQL jest różna od tej systemowej.

To że masz UID 0 w systemie nie obchodzi MySQLa wcale jeśli nie znasz hasła.

Wydaj polecenie: mysql -u root -p i podaj hasło wtedy gdy system o nie poprosi.

Co do iptables, to jeśli jest to "zapora autorska", to najpewniej jest ona zorganizowana tak,

że wpierw są wpisy typu accept jakiś port, później drop reszta.

Dodaj gdzieś na początku linijkę z accept dla portu 3306.

Cos a la: iptables -I INPUT -p tcp --dport 3306 -j ACCEPT,

możesz to uzupełnić o switche: -s IP z którego chcesz się łączyć (o ile będzie to tylko 1 i jest adresem niezmiennym),

a także -d IP na którym słucha MySQL jeśli robi to tylko na 1,

a globalnie tych adresów podłączonych pod VPS masz ich więcej.

To wszystko po INPUT, a przed -p.

Poczytaj ten tutorial. Fajny jest. :)

 

P.S. Wpis "%" oznacza, że użytkownik może się łączyć z SQLem via TCP/IP z dowolnego hosta.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wpisałem mysql -u root -p podałem hasło rota i brak dostępu.

Jakby była zapora autorska i robiłaby później drop, to mógłbym się połączyć z inną bazą utworzoną w plasku? Chyba nie a łącze się bez problemu z bazami utworzonymi w plesku.

Coś mi się zdaje że to chyba coś ten panel Plesk miesza bo przegladając zawartośc katalogu mysql jako root widziałem katalogi psa(plesk) oraz właśnie katalog mysql z plikami bazy danych, oprócz katalogów które miały nazwy takie jak nazwy baz nadane w plesku.

 

Znalazłem w necie coś takiego:

mysql -u root -p 
Password : ********* 
> grant <przywileje> on <do-czego> to <kto-i-skad> identified by 
'hasełko open tekstem'; 

<przywileje> = ALL bedzie oznaczac pelne uprawnienia 
<do-czego> = PanaBazaDanych.* bedzie oznazcac wszystkie tabele 
okreslonej bazy danych 
<kto-i-skad> - do wyboru do koloru : 
	= username bedzie oznaczac username'a skadkolwiek 
	= usern...@1.2.3.4 oznacza username'a laczacego sie z 1.2.3.4 
	= usern...@host.domena.net oznacza jak wyzej z host.domena.net

Idealną rzeczą byłby nadanie możliwości łączenia się z każdego ip wybranej bazie danych. Ale nawet root nie ma takich uprawnień. Dziwne nie? :-)

 

Dodam że nic nie kombinowałem z iptables i innymi, system jest taki jak dostałem od hosteurope.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Wpisałem mysql -u root -p podałem hasło rota i brak dostępu.

Konta użytkownika root w systemie i MySQLu nie są tożsame,

tak więc zapewnie hasło jest inne; choć oczywiście jeśli ktoś ma kłopoty

z pamięcią to może ustawić takie same.

 

Jakby była zapora autorska i robiłaby później drop, to mógłbym się połączyć z inną bazą utworzoną w plasku? Chyba nie a łącze się bez problemu z bazami utworzonymi w plesku.

Lokalnie, via konsola, możesz się łączyć z SQLem ile dusza zapragnie.

Praca zdalna, to już co innego.

Kiedyś używałem Pleska. Kojarzę, że ten panel sam generuje regułki iptables,

tak więc nic nie powiem bo nie chcę Ci mieszać w głowie.

Niech mądrzejsi się wypowiedzą.

 

Coś mi się zdaje że to chyba coś ten panel Plesk miesza bo przegladając zawartośc katalogu mysql jako root widziałem katalogi psa(plesk) oraz właśnie katalog mysql z plikami bazy danych, oprócz katalogów które miały nazwy takie jak nazwy baz nadane w plesku.

W telegraficznym skrócie, konto root w systemie pozwala na wszystko,

tak więc nic dziwnego że widzisz katalogi z bazami SQLa; ba możesz je nawet usunąć! :)

 

Idealną rzeczą byłby nadanie możliwości łączenia się z każdego ip wybranej bazie danych. Ale nawet root nie ma takich uprawnień. Dziwne nie? :-)

Chcesz coś zrobić na szybko, nie czytasz, nie googlujesz...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Konta użytkownika root w systemie i MySQLu nie są tożsame,

tak więc zapewnie hasło jest inne; choć oczywiście jeśli ktoś ma kłopoty

z pamięcią to może ustawić takie same.

To skąd ja mam wiedzieć jakie jest ustawione hasło roota do mysqla? Ja go nie zmieniałem a vpsa mam o 2 tygodni więc bym raczej pamiętał :-). Chyba napisze do hosteurope aby oni "odgadli" hasło. Kurde no chyba zrobie format C: :-)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam, na stronie hosteurope znalazłem coś takiego:

per Kommandozeile (nur Linux): Sie können entweder den Befehl "mysql_setpermission -u admin --password `cat /etc/psa/.psa.shadow`" nutzen, um einen neuen User mit externen Zugriffrechten anzulegen. Folgende Sie den Eingabeaufforderungen und wählen Sie, welche Rechte vergeben werden sollen. Geben Sie bei Host "%" ein. 
Oder Sie machen dies wie folgt:

Loggen Sie sich per SSH auf Ihrem Server ein und führen folgende Befehle aus:

mysql -u admin -p`cat /etc/psa/.psa.shadow` mysql

update user set host='%' where user="admin";

flush privileges;

exit;

Für "admin" können Sie natürlich auch einen beliebigen anderen Datenbankbenutzer auswählen.

Bitte beachten Sie allerdings, dass Sie den User "admin" nur auf "%" oder "localhost" setzen und nicht auf eine IP beschränken dürfen, da ansonsten Plesk nicht mehr startet!

Czy to znaczy że w pliku psa.shadow jest hasło? Pozdrawiam. Z tego co dobrze zrozumiałem jak wpisze host="%" bede miał dostęp z każdego ip do bazy? A jakie polecenie wpisać aby można było dostać się z każdego ip ale tylko do bazy "zamowienia"? Sorry że sie tak pytam, ale boje się że coś skasuje i cały vps nie bedzie działał, więc wole Was się upewnić. Poprostu zawsze pisałem i testowałem skrypty php już na skonfigurowanych kontach www i nie mam w vpsach doświadczenia. Z góry dzięki za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy Ty w ogóle rozumiesz, jak łączysz się ze swoją bazą i jak do niej są nadawane uprawnienia? ;|

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No rozumiem, znam najpotrzebniejsze polecenia konsoli mysql, tylko że różne uprawnienia i hasła nadawałem serwerowi mysql zainstalowanemu na moim komputerze lokalnie, a przez ssh jest troche inaczej.

Dobra, pierwszy krok już mam za soboą, połączyłem się z bazą wpisując mysql -u admin -p`cat /etc/psa/.psa.shadow`; pojawił się znak zachęty: mysql>

wpisałem show databases; i pojawiła się lista baz łącznie z mysql. Teraz następny krok, wpisanie tego "%" aby łączyc sie z każdego ip. Pewnie do jutra wymyśle. Wy taż na pewno jak siedzieliście pierwszy raz przed konsolą to nie wszystko od razu wiedzieliście :-) Rozumiem że da się zrobić kopię bazy mysql za pomoca polecenie dump?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Rozumiem że da się zrobić kopię bazy mysql za pomoca polecenie dump?

Backup całej bazy:

mysqldump -u użytkownik --databases nazwabazy > plik.docelowy.sql -p

 

Przywracanie bazy:

mysql -u użytkownik nazwa.bazy < kopia.sql -p

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×