1. Jaka jest różnica pomiędzy MariaDB 5 a nową wersją MariaDB 10?
https://mariadb.com/resources/blog/mari ... son-update
2. Czy obie bazy mogą na synku pracować równolegle?
tak, różnica polega tylko na portach
MariaDB 5 jest na porcie 3306 (/etc/mysql/my.cnf)
MariaDB 10 jest na porcie 3307 (/volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf) a tutaj wstawiamy nasz zmieniony my.cnf: "/var/packages/MariaDB10/etc"
Odnośnie samych plików konfiguracyjnych *.cnf więcej tutaj: https://mariadb.com/kb/en/library/confi ... ith-mycnf/
3. Czy phpMyAdmin współpracuje z obiema bazami równolegle?
tak, przy logowaniu się masz możliwość wyboru MariaDB 5/10 do której chcesz się aktualnie zalogować
4. Jak wykonać prawidłowo zrzut danych ze starej bazy?
ściągamy "mariadb-10.0.32-winx64.zip"
z: https://downloads.mariadb.org/mariadb/10.0.32/
teraz wypakuj całość do: C:\mariadb-10.0.32-winx64
opcja CLI: mysqldump (dane+schemat)
Kod: Zaznacz cały
"C:\mariadb-10.0.32-winx64\bin\mysqldump.exe" --host="localhost" --port="3306" --user="" --password="" --all-databases --default-character-set=utf8 --protocol=tcp --flush-privileges=false --skip-opt --add-drop-database --add-drop-table --add-locks=false --single-transaction=false --flush-privileges=false --flush-logs=false --no-create-info=false --complete-insert=false --extended-insert=false --hex-blob --comments --triggers --routines --events --force=true --verbose --debug-info --result-file=backup_mariadb5.sql
Kod: Zaznacz cały
"C:\mariadb-10.0.32-winx64\bin\mysqldump.exe" -u UZYTKOWNIK -pHASLO --host=ADRES-IP --no-data --port=3306 --default-character-set=utf8 "NAZWA-BAZY-DANYCH" --result-file=zrzut_schemat.sql
opcja CLI: mysqldump (export danych)
Kod: Zaznacz cały
"C:\mariadb-10.0.32-winx64\bin\mysqldump.exe" --host="ADRES-IP" --port="3306" --user="UZYTKOWNIK" --password="HASLO" --databases "NAZWA-BAZY-DANYCH" --default-character-set=utf8 --protocol=tcp --flush-privileges=false --skip-opt --add-locks=false --single-transaction=false --flush-privileges=false --flush-logs=false --no-create-info=true --complete-insert=false --extended-insert=false --hex-blob --comments --triggers --routines --events --force=true --verbose --debug-info --result-file=zrzut_dane.sql
Kod: Zaznacz cały
"C:\mariadb-10.0.32-winx64\bin\mysql.exe" -u<user> -p<password> -h<host> -N mysql -e "select concat(\"'\", user, \"'@'\", host, \"'\"), authentication_string from user where not user like 'mysql.%'" | while read usr pw ; do echo "GRANT USAGE ON *.* TO $usr IDENTIFIED BY PASSWORD '$pw';" ; mysql -u<user> -p<password> -h<host> -N -e "SHOW GRANTS FOR $usr" | grep -v 'GRANT USAGE' | sed 's/\(\S\)$/\1;/' ; done
Kod: Zaznacz cały
"C:\mariadb-10.0.32-winx64\bin\mysql.exe" -u<user> -p<password> -h<host> -e"select concat('show grants for ','\'',user,'\'@\'',host,'\'') from mysql.user" > user_list_with_header.txt
sed '1d' user_list_with_header.txt > ./user.txt
while read user; do mysql u<user> -p<password> -h<host> -e"$user" > user_grant.txt; sed '1d' user_grant.txt >> user_privileges.txt; echo "flush privileges" >> user_privileges.txt; done < user.txt
awk '{print $0";"}' user_privileges.txt >user_privileges_final.sql
rm user.txt user_list_with_header.txt user_grant.txt user_privileges.txt
Odradzam Navicat Premium i funkcja Data Transfer - nie wiedzieć czemu generuje masę błędów i nie przenosi wszystkich danych
5. Mam zrzucone tabele do pojedynczych plików *.SQL, teraz chciał bym je wszystkie złączyć w jeden duży plik *.sql, żeby go zaimportować do bazy, jak to zrobić?
windows:
Kod: Zaznacz cały
COPY *.sql > allinone.sql
Kod: Zaznacz cały
type *.sql > allinone.sql
linux:
Kod: Zaznacz cały
cat *.sql > single.sql
6. Jak prawidłowo zaimportować plik *.SQL do nowej bazy (z zachowaniem kodowania znaków)?
Pod windowsem:
Kod: Zaznacz cały
@echo off
pause
cls
REM @echo on
REM --verbose --debug-info
"C:\mariadb-10.0.32-winx64\bin\mysql.exe" --user=USER --password="PASSWORD" --host=IP --port=3307 --protocol=TCP --no-beep --default-character-set=utf8 -Be "USE NAZWA_BAZY; SOURCE C:/Users/Admin/Desktop/import.sql;" --force=true --verbose --debug-info
@echo off
pause
7. wpisanie mysql w oknie konsoli prowadzi do starego silnika DB, jak to poprawić?
Należy utworzyć nowy link symboliczny:
Kod: Zaznacz cały
ln -s /usr/local/mariadb10/bin/mysql mysql
8. Jak połączyć się z bazą przez ODBC?
Ściągnij i zainstaluj sterowniki.
https://downloads.mariadb.org/connector-odbc/3.0.5/
9. Przy długo trwających zapytania zrywa mi połączenie z bazą albo dane InnoDB nie chcą się wszystkie importować/exportować, co robić?
W przypadku dużych baz danych (>1 milion rekordów) należy nieco podkręcić parametry pracy silnika DB.
W tym celu edytujemy plik: "/volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf"
Kod: Zaznacz cały
max_allowed_packet = 400M
net_read_timeout=6000
net_write_timeout=6000
wait_timeout=86400
interactive_timeout=86400