Jestem tu nowy, więc moje pierwsze słowa niech będą wyrazem szczerego szacunku dla Shibby, dziękuję, wspaniała praca.
A teraz problem.
Moje założenie jest proste, chcę zainstalować MySQL by udostępniał bazy danych w moim LAN (tylko).
Korzystam z MediaPortal, ten wymaga dostępu do bazy danych, a ja już nie chcę dłużej trzymać serwera MS SQL (również MySQL) na moim kompie, więc pomyślałem, że mój ruterek, być może, mógł by udźwignąć tę rolę.
Do każdego serwera BD przydaje się coś do jego zarządzania, szczerze mówiąc nie mam ochoty (umiejętności również) aby na ruterku stawiać dodatkowo jeszcze serwer WWW wraz z koniecznym otoczeniem i skryptami PHP, by ten od czasu do czasu dał mi możliwość zajrzenia i zarządzania MySQL'em, wydaje mi się to troszeczkę bez sensu, przerost formy nad treścią.
Chyba znalazłem program, który spełni moje oczekiwania w tej kwestii - HeidiSQL, jest niewielki, nie wymaga instalacji, ot po prostu odpalić, połączyć z MySQL i się cieszyć. To na razie są moje oczekiwania, niestety ciągle nie sprawdzone ponieważ od prawie tygodnia nie mogę sobie z tym poradzić.
Robię tak :
1) opkg install mysql-server - instalacja przebiega prawidłowo.
2) edytuję /opt/etc/my.cnf zmieniając trzy linie
datadir = ... (ścieżka do zamontowanej partycji danych na HD)
tmpdir = ... (ścieżka do zamontowanej partycji danych na HD)
#skip-external-locking (wyłączyłem tę opcję - czy dobrze?)
w efekcie my.cnf wygląda tak :
[client]
port = 3306
socket = /opt/var/run/mysqld.sock
[mysqld]
user = root
socket = /opt/var/run/mysqld.sock
port = 3306
basedir = /opt
############ Don't put this on the NAND #############
# Figure out where you are going to put the databases
# And run mysql_install_db --force
datadir = /mnt/data/mysql_db
######### This should also not go on the NAND #######
tmpdir = /mnt/data/mysql_tmp
# Here you can see queries with especially long duration
#log_slow_queries = /opt/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 = /opt/var/log/mysql/mysql-bin.log
#expire_logs_days = 10
#max_binlog_size = 100M
3) mysql_install_db --force
w folderze /mnt/data/mysql_db zostają utworzone dwie bazy : mysql i test.
Zgodnie z informacja, po instalacji systemowej bazy mam wykonać
/opt/bin/mysqladmin -u root password 'new-password'
/opt/bin/mysqladmin -u root -r IPrutera password 'new-password'
4) /opt/etc/init.d/S70mysqld stop
5) /opt/etc/init.d/S70mysqld start
po starcie, w /opt/var/run/ zostaje utworzony plik mysqld.sock
6) /opt/bin/mysqladmin -u root password '123'
wykonane, brak komunikatu
I na tym kończą się moje sukcesy.
7) /opt/bin/mysqladmin -u root -h IPrutera password '123'
komunikat:
error: 'Lost connection to MySQL server at 'reading initial communication packet', system error 146'
HeidiSQL - ustawienia połączenia:
Typ połączenia : MySQL (TCP/IP)
Nazwa hosta / IP : 192.168.210.1
Użytkownik : root
Hasło : 123
Port : 3306
Bazy : test (nie ważne, test, czy mysql, czy pozostawiam puste pole)
Próba łączenia się HeidiSQL daje komunikat :
Błąd SQL (2003) w instrukcji #0: Can't connect to MySQL server on '192.168.210.1' (10061)
link do obrazka : https://drive.google.com/file/d/0B3No...sp=sharing
Pomimo prawie tygodnia starań, powtarzania instalacji od nowa, formatowania partycji opt, guglowania i sam już nie wiem czego jeszcze, dalej się nie posunąłem. Dodam, że instaluję mc i lftp, korzystam z nich i działają poprawnie.
Tych co wiedzą jak to zrobić i chcą pomóc, proszę o podanie tych kilku "czarodziejskich" linijek które mam wpisać w Putty, bardzo dziękuję za odsyłacze do manuali itp.
Chciałbym by dla takich jak ja, znalazo się tu konkretne rozwiązanie problemu, myślę, że przydatnego.
I jeszcze pytanie, czy do wywołania MySQL'a na ruterku z kompa w LAN trzeba otworzyć port 3306 w ruterku? (porty po kablu i WiFi są u mnie we wspólnym LAN - 192.168.210.0, 255.255.255.0)
Jeśli tak to poproszę o wpis jaki mam wykonać.
Z góry dziękuję wszystkim chcącym pomóc mi i mnie podobnym.
Jak widać, pkt.4 wykonał się prawidłowo, czyli posunęliśmy się o krok dalej, wygląda na to, że MySQL już słucha na swoim adresie LAN.
5) Uruchomiłem HeidiSQL i spróbowałem się połączyć z MySQL, tym razem pojawił się inny komunikat :
Błąd SQL (1130) w instrukcji #0: Host 'KOMP1.DOMOWA' is not allowed to connect to this MySQL server
link do obrazka : https://drive.google.com/file/d/0B3No...sp=sharing
Dodam, że zapora w windzie jest wyłączona.
Teraz, ja nie wiem, czy MySQL jest już gotowy do pracy w LAN, a HeidiSQL ma jakieś problemy, czy to jeszcze MySQL nie jest gotowy.
zaloguj się do mysqla przez konsolę i wydaj komendy:
use mysql;
select Host,User from user where User='root'
zwróci ci listę hostów z których można się logować na roota. Jak pewnie zobaczysz nie ma tam twojego Komp1.domowa Najprościej więc będzie jeden z wpisów zamienić na % czyli dopuść wszystkie hosty.
update user set Host='%' where User='root' and Host='localhost'
Powinno pokazać ci że uaktualniono jeden wpis. Jeżeli tak to czas odświeżyć uprawnienia:
flush privileges;
Po tym zabiegu powinieneś się już móc zalogować na roota do mysqla.
Inne rozwiązanie to dodać nowego usera i jemu nadać takie uporawnienia (poszukaj na necie jak z konsoli dodać usera).
Proxmox VE:i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+ VM Router:OpenWRT 22.03.4 VM NAS:Synology SA6400 VM VPS:Debian, WWW, Home Assistant Switch:Netgear MS510TXPP Switch:Ubiquiti USW-Flex-mini - szt. 2 Wi-Fi:Ubiquiti U6-Lite - szt. 2
mysql -h 192.168.210.1 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.1.68 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select Host,User from user where User='root'
+-----------+------+
| Host | User |
+-----------+------+
| 127.0.0.1 | root |
| RuterWawa | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)
mysql> update user set Host='%' where User='root' and Host='localhost'
-> ;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select Host,User from user where User='root'
+-----------+------+
| Host | User |
+-----------+------+
| % | root |
| 127.0.0.1 | root |
| RuterWawa | root |
+-----------+------+
3 rows in set (0.00 sec)
Teraz widzimy, że pojawił się Host - %, ale zniknął Host - localhost
Czy to jest prawidłowe ?
Następnie uruchomiłem HeidiSQL i bezproblemowo loguję się na konto root do bazy mysql i test.
Włączyłem zaporę w windzie i logowanie jest również bezproblemowe.
Shibby, nawet nie wiesz jak się cieszę, bez poufałości, ale uściskał bym Cię
Na zakończenie pozostaje pytanko jak wyżej i na marginesie, z punku widzenia praktyka i fachowca, czy tego typu rozwiązanie wydaje się sensowne?
Czy na zakończenie tego tematu napisać jeszcze podsumowanie - krok po kroku dla potomnych ? czy tak jak jest wystarczy ?
Połączony z 24 luty 2014 12:57:14:
Sprawdziłem :
mysql -h localhost -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@RuterWawa:/tmp/home/root#
Czyli na localhost nie mogę się teraz zalogować do MySQL.
Edytowany przez cek149 dnia 24-02-2014 12:57
Wprowadziłem proponowaną przez Ciebie zmianę i jest teraz tak :
mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.68 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select User,Host from user where User='root'
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)
mysql>
i teraz porobiłem szereg prób z czego wynika :
jeśli w my.cnf jest bind-address = 192.168.210.1 to na ruterku mogę się zalogować tylko -h localhost, -h 127.0.0.1 nie mogę :
mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.68 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> \q
Bye
mysql -h 127.0.0.1 -u root -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (146)
root@RuterWawa:/tmp/home/root#
loguję się również HeidiSQL z windy.
jeśli w my.cnf jest #bind-address =... lub bind-address = 0.0.0.0 to na ruterku mogę się zalogować w sposób dowolny :
-h localhost,
-h 127.0.0.1,
-h IP_mojeWAN,
loguję się wównież HeidiSQL z windy.
bind-address=0.0.0.0 mi nie pasuje, bo można na MySQL'a włazić skąd się chce, pokazuję tylko, że logowanie następuje poprawnie.
Nie ukrywam, że chciałbym się dowiedzieć dlaczego na ruterku nie mogę się zalogować -h 127.0.0.1 ? chociaż wydaje się, że powinno się dać.
Proszę o wyjaśnienie.
na 127.0.0.1 możesz nie moc się zalogować bo Mysql nie słucha na tym interfejsie. Bind na 0.0.0.0 nie oznacza że można się zewsząd zalogować tylko ze Mysql słucha na wszystkich intersejsach, w tym i na wanie. Z drugiej jednak strony iptables nie pozwoli na połączenia z zewnątrz - przynajmniej nie w domyślnej konfiguracji
Proxmox VE:i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+ VM Router:OpenWRT 22.03.4 VM NAS:Synology SA6400 VM VPS:Debian, WWW, Home Assistant Switch:Netgear MS510TXPP Switch:Ubiquiti USW-Flex-mini - szt. 2 Wi-Fi:Ubiquiti U6-Lite - szt. 2
tak, flush uprawnień robiłem zawsze po ich zmianie.
to są aktualne dane :
mysql> select User,Host from user where User='root'
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
Zastanawia mnie dlaczego nie mogę się zalogować
mysql -u root -h 127.0.0.1 -p kiedy bind-address = 192.168.210.1,
a kiedy bind-address = 0.0.0.0 wtedy mogę się zalogować
mysql -u root -h 127.0.0.1 -p
zmienia się tylko bind-address (oczywiście po zmianie - mysql restart)
Połączony z 24 luty 2014 19:26:23:
kiedy bind-address = 192.168.210.1 wtedy MySQL słucha TYLKO na tym adresie i loguję się
mysql -u root -h localhost -p
to wywołanie przechodzi przez adres 192.168.210.1,
a loguję się
mysql -u root -h 127.0.0.1 -p
to wywołanie przechodzi inną drogą.
Połączony z 24 luty 2014 19:29:09:
jeśli tak jest, to root dla 127.0.0.1 nie ma tu zastosowania i jest zbędne ?
Edytowany przez cek149 dnia 24-02-2014 19:29
· Łącznie użytkowników: 24,115 · Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.
Maniek91PL
06-11-2024 22:37
dzięki !
maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia
Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa
overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.
maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.
overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?
maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach
maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności", więc prawdopodobnie gdzieś przepięcie.
servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.
maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?