Mám problém s instalací MySQL, přesněji řečeno instalace se mi zdařila, ale nedaří se mi k databázi připojit na lokálním počítači ve skriptu PHP.
Mám následující konfiguraci:
- Windows XP (SP2)
- Server IIS (verze 5.1)
- PHP 4.3.11
- MySQL 4.1.11
Instalace MySQL proběhla v podstatě bez problémů, nainstaloval jsem to pomocí instalačního programu, který jsem si stáhl ze stránek www.mysql.com a nainstaloval jsem to do adresáře C:MYSQL. Při konfiguraci jsem nastavil, že chci používat charset cp1250.
Poté jsem si ze stejných stránek stáhl a nainstaloval program MySQL Administrator. Pomocí něj se mi podaří k databázi bez problémů připojit a pracovat s ní (spustit řádkového klienta mysql.exe, vytvářet databáze, tabulky, atd.). Vytvořil jsem si testovací databázi mojedata a v ní tabulku uzivatele:
CREATE TABLE `uzivatele` (
`id_uzivatele` mediumint(8) unsigned NOT NULL auto_increment,
`uziv_jmeno` varchar(30),
`jmeno` varchar(30) NOT NULL,
`prijmeni` varchar(50) NOT NULL,
`email` varchar(255),
`heslo` varchar(50) NOT NULL,
`datum` datetime NOT NULL,
PRIMARY KEY (`id_uzivatele`)
); Poté jsem si vytvořil skript, kterým jsem se chtěl připojovat k databázi:
<?php
define('DB_UZIVATEL', 'root');
define('DB_HESLO', 'heslo'); //tady jsem dal správné heslo
define('DB_NAZEVDATABAZE', 'mojedata');
define('DB_HOSTITEL', 'localhost');
$dbc = @mysql_connect(DB_HOSTITEL,DB_UZIVATEL,DB_HESLO) OR die('Nepodařilo se připojit k databázi MySQL: ' . mysql_error());
echo '<p>Připojení se podařilo.</p>'; //pro testovaci ucely
@mysql_select_db(DB_NAZEVDATABAZE) OR die('Nelze vybrat databázi: ' . mysql_error());
echo '<p>Databázi se podařilo vybrat.</p>'; //pro testovaci ucely
?> Ten však po spuštění v prohlížeči nefunguje a hlásí mi to nějaké divné chyby, konkrétně toto:
File 'c:mysqlsharecharsets?.conf' not found (Errcode: 22) Character set '#26' is not a compiled character set and is not specified in the 'c:mysqlsharecharsetsIndex' file Nepodařilo se připojit k databázi MySQL: Client does not support authentication protocol requested by server; consider upgrading MySQL client
To, co je tučně je chyba, kterou jsem již vypsal skriptem. Kde se tam vzalo to před tím, netuším. Máte někdo zkušenost s používáním MySQL na lokálním počítači s obdobnou konfigurací? Mohl byste mi někdo poradit, kde dělám chybu?
UPDATE:
Po nastavení parametru default-character-set na hodnotu latin1 už mi to nepíše tu chybovou hlášku o nekompilovaném charsetu, ale stále zůstává problém s tím přístupem.
5 komentářů:
proč bastlis dohromady IIS a php a mySQL?
logictejsi se mi zda bud waffen ms reseni /IIS+ASP+MS SQL/ a nebo open source reseni
/Apache+PHP+MySQL/ a nejlip na Linuxu.
Protože v práci používám WinXP. Linux jsem nikdy nainstalovaný neměl a nehodlám (a ani nesmím) si ho ani instalovat. Protože IIS je standardní součástí Windows (nemusel jsem nic instalovat). Protože takhle to proste mám nainstalované a chci se na této konfiguraci učit MySQL používat. Na serveru, kde by případné moje výtvory byly umístěny, je Apache+PHP+MySQL+Linux (pokud vím), ale to nehraje roli. Já potřebuju testovat na mé konfiguraci.
Co se týče chyby - "Nepodařilo se připojit k databázi MySQL: Client does not support ..." stačí v příkazovém řádku MySQL napsat:
SET PASSWORD FOR 'tvujuzivazel'@'localhost' = OLD_PASSWORD('tvojeheslo');
Kde je tvuj uzivatel po instalaci vetsinou root.
No a ta chyba s chracter set, tu bych taky potřeboval vyře¨šit. Pokud v My.ini zapíšu do defaul-character-set cokoliv jiného než latin1, píše mi to stejnou hlášku. Obešel jsem to sice tím, že jsem tam nechal Latin1 a při sestavování spojení nastavuji:
$query = "SET character_set_connection=latin2";
$result = mysql_query($query, $link) or die ("SQL bad");
$query = "SET character_set_client=latin2";
$result = mysql_query($query, $link) or die ("SQL bad");
$query = "SET character_set_results=latin2";
$result = mysql_query($query, $link) or die ("SQL bad");
Pokud jsi se dověděl jak na to, budu ti vděčný za radu.
Dík
Dalibor
Jo, díky. Už jsem si to našel na webu a použil to. Viz http://www.bobocop.cz/blog/136880_item.php
Pokud jde o to kódování, tak si nejsem jistý tím, jestli je to správný postup, ale po připojení k databázi jsem použil následující kód:
$vysledek = mysql_query("SET NAMES 'cp1250'");
$vysledek = mysql_query("SET CHARACTER SET cp1250");
a vypadá to, že to takto funguje. Ovšem jestli to je ten správný postup, to opravdu nevím.
Dsquared Clothing Dsquared Hoodies Dsquared Jeans Dsquared Shoes Dsquared Sweater Dsquared T Shirt Dsquared Belt Dsquared Women Heels Shoes Dsquared Cap Dsquared Jacket Dsquared Polo Shirt Dsquared Shirt Dsquared Pants Dsquared Swim Dsquared Coat Moncler Doudoune Moncler Shoes Moncler Vest Moncler Coat Moncler Jacket Moncler Hoodies Moncler Sweater Moncler Polo Shirt Moncler Down Jacket Moncler Boots Moncler Cap Moncler Down Jacket Moncler Pants Moncler Shorts Moncler Kids Belstaff Leather Belstaff Bag Belstaff Leather Jacket Belstaff Leather Jacket Men Belstaff Leather Jacket Women Belstaff Women Jacket Tory Burch Shoes Tory Burch Tote Bag Tory Burch Wallet Tory Burch Flat Shoes Tory Burch Sandals Tory Burch Suede Shoes Tory Burch Boots Tory Burch Heels Shoes Tory Burch Wedge Shoes Tory Burch Flip Flops Tod\'s Shoes Tod\'s Ballet Shoes Tod\'s Boots Tod\'s Fall Shoes Tod\'s Handbag Tod\'s Loafers Tod\'s Moccasins Juicy Couture Clothes Juicy Couture Tracksuit Juicy Couture Flip Flops
Dsquared2 Men Dsquared2 Hoodies
Dsquared2 Jacket Dsquared2 Jeans Dsquared2 Shoes Dsquared2 T Shirt Docle Gabbana
Brand Clothes
Okomentovat