Připojení k databázi MySQL/MariaDB z PHP skriptů
Jako adresu serveru ve funkci pro připojení k databázi používejte IP adresu 127.0.0.1.
Pozor, pokud jako adresu použijete řetězec localhost, klientská knihovna MySQL se pokusí připojit na místní soket namísto použití spojení tcp/ip, a spojení na databázi se proto nezdaří.
Pro připojení do MySQL či MariaDB databází je k dispozici PHP rozšíření mysqli, nebo PDO_MYSQL. Na webserverech s PHP 5 je možné připojovat se i pomocí staršího rozšíření mysql, ale jeho použití nedoporučujeme (zejména kvůli kompatibilitě). Níže uvádíme jednoduchý příklad připojovacího PHP skriptů využívající mysqli.
<? $spojeni = mysqli_connect('127.0.0.1', 'vas_uzivatel', 'vase_heslo'); if(!$spojeni) {die('Chyba pri pripojeni k databazi!');} $databaze = mysqli_select_db($spojeni, 'vase_databaze'); if(!$databaze) {die('Chyba pri vyberu databaze!');} ?>
Správa databáze MySQL/MariaDB přes webové rozhraní
Pro správu MySQL/MariaDB databáze nabízíme webové rozhraní phpMyAdmin. PhpMyAdmin umožňuje například pohodlnou editaci záznamů, stažení databáze na váš počítač, nahrání databáze na server a provádění SQL dotazů. Z bezpečnostních důvodů není povoleno používat funkci load data.
Aby Vám aplikace phpMyAdmin pracovala správně, je potřeba mít ve Vašem prohlížeči povolený javascript a přijímání cookies.
Založení, rušení databáze, změna hesla
Veškerou správu MySQL/MariaDB databází na Vaší doméně (zakládání, rušení, změny přístupových hesel) provádějte v klientské sekci (Domény a hosting - Správa domény - Databáze).
Vzdálený přístup k MySQL/MariaDB
MySQL/MariaDB databáze jsou vzdáleně přístupné přes SSH tunel. Připojení je vedeno přes SSH na webserver a odtud je přesměrováno na příslušný databázový server. Pro SSH spojení použijte údaje pro SFTP, pro připojení do databáze pak stejné údaje, jako ve webové aplikaci. Ukázku nastavení MySQL klienta najdete níže.
Tato funkcionalita je k dispozici na webserverech sdíleného hostingu s řadou PHP 5.4 a vyšší a na všech virtuálních a dedikovaných managed serverech s operačním systémem Debian.
Pokud využíváte některou z nabízených vyhrazených služeb (virtuální či dedikovaný server), můžeme na požádání povolit i přímý vzdálený přístup bez SSH tunelu (pouze pro vybranou IP adresu či adresy). Spojení ale v tomto případě není zabezpečené (tzn. přihlašovací údaje i data je možné odposlouchat), proto toto řešení nedoporučujeme.
Nastavení MySQL klienta MySQL Workbench
Pro ilustraci uvádíme obrázky ze základního nastavení spojení v anglické verzi volně dostupného multiplatformního MySQL klienta MySQL Workbench. V jiném software bude nastavení obdobné.
1. Přidání nového připojení
- V úvodní obrazovce klikněte na ikonku + u nadpisu MySQL Connections.
2. Základní údaje
V dialogovém okně zadejte potřebné údaje:
- Do pole Connection Name zadejte Vaše označení daného spojení.
- Jako metodu připojení vyberte volbu Standard TCP/IP over SSH.
- Jménem hostitele pro SSH připojení je jméno Vaší domény, nebo jméno webserveru, na němž je hostována (to najdete třeba v klientské sekci, ve správě dané domény, v záložce FTP). Standardní port 22 není třeba uvádět, na virtuálních managed serverech bez vyhrazené IP adresy ale bude jiný (opět je uveden v klientské sekci). V tomto případě jej uveďte za dvojtečku po jménu hostitele (např.
replikant123456.thinline.cz:3456
). - Uživatelské jméno pro SFTP přístup k Vaší doméně.
- Heslo pro SFTP zadejte v dialogu po kliknutí na tlačítku Store in Keychain.... Alternativně také můžete využít i přihlášení s SSH klíčem. Cestu k souboru s Vaším privátním klíčem případně zadejte v poli SSH Key File.
- Jako adresu hostitele a port zadejte stejné údaje, které používáte ve Vaší webové aplikaci. Standardně je hostitel 127.0.0.1.
- Standardní port, na němž MySQL server naslouchá, je 3306.
- Uživatelské jméno a heslo pro přístup k databázi je stejné, jako používáte ve Vaší webové aplikaci.
- Heslo daného databázového uživatele (stejné, jako používáte ve Vaší webové aplikaci) zadejte v dialogu po kliknutí na tlačítku Store in Keychain....
3. Verifikace SSH spojení
Verifikace klíče hostitele slouží k ověření, že spojení probíhá na správný server. Otisky veřejných klíčů pro servery sdíleného hostingu najdete v nápovědě v článku Otisky veřejných klíčů SFTP/SCP serverů pro sdílený hosting. Pokud Váš systém umí provést verifikaci podle SSHFP DNS záznamů, ověření proběhne automaticky a tento dialog se nezobrazí. Verifikaci potvrďte stisknutím tlačítka Continue a spojení bude navázáno.
Kódování v MySQL/MariaDB
Databázové systémy MySQL řady 5 a MariaDB umožňují data prezentovat v libovolném kódování. Požadované kódování pro komunikaci aplikace s databázovým serverem je třeba po připojení do databáze v aplikaci specifikovat SQL dotazem SET NAMES
. Následují příklady specifikace kódování obvykle používaných pro češtinu:
UTF-8: SET NAMES utf8
ISO-8859-2: SET NAMES latin2
Windows-1250: SET NAMES cp1250
Bližší informace najdete například v dokumentaci systému MySQL 5.