Portál AbcLinuxu, 20. července 2025 10:53


Dotaz: MySQL, přenos databáze z localhostu na webhost, problémy s kódováním

18.6.2006 13:43 misterlister | skóre: 12 | blog: aiyyo
MySQL, přenos databáze z localhostu na webhost, problémy s kódováním
Přečteno: 1141×
Odpovědět | Admin
Dobrý den,

mám problém s přenosem databáze z localhostu (MySQL 5.0.22-log) na webhost (MySQL 4.1.11-Debian_4sarge4-log a MySQL 5.0.20-log). Situace je taková, že se snažím rozfungovat CMS a data, která si vytvořím u sebe na localu přenést na net. MySQL ani PHP nejsou mojí doménou, tak se omlouvám, jestli budu psát příliš po lopatě a (nebo) nebudu psát relevantní informace. :-) Tady na abíčku a zejména na netu jsem našel rady, které se zřejmě týkají přechodu ze starší verze MySQL na novější (4.1 a výš), nebo jsem nepochopil, že se jedná o stejný problém :-) Za rady, odkazy, etc. předem děkuju.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.6.2006 14:29 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Odpovědět | | Sbalit | Link | Blokovat | Admin
ten isty problem

zatial sa mi nepodarilo korektne importnut data cez phpadmin-a :( - riesim to cez konzolu:

ak mas ssh pristup na server:
ssh host
mysql -u login --password heslo
use databaza;
SET CHARACTER SET 'utf8';  
SET NAMES 'utf8';
\. /cesta k exportovanemu suboru
( ak exportovany subor otvotis v nejakom textovom editore zobrazi sa diakritika spravne s utf-8 kodovanim ???)
18.6.2006 14:34 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
resp. skontroluj data cez phpadmina a ak su ulozene korektne, skontroluj ci mas v tom CMS v skripte, ktory sa stara o pripojenie k db nieco taketo:
mysql_query("SET character_set_results=UTF8",$connection);
mysql_query("SET character_set_connection=UTF8",$connection);
mysql_query("SET character_set_client=UTF8",$connection);
18.6.2006 14:49 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Přístup přes ssh nemám, je to freehosting, nic životně důležitého. V phpMyAdminovi na hostingu je vše uloženo korektně (tedy ve firefoxu při kódování UTF-8 jsou písmena s diakritikou správně, některá jsou převedena do tvaru: & scaron, & yacute, & aacute (bez těch mezer, ábíčko by to bylo interpretovalo jako znaky)).

Co se týče toho skriptu, hledal jsem a CMSMS zřejmě používá adodb a ve zdrojácích, které by se měly týkat mysql jsem nic nenašel. :-(
18.6.2006 15:04 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
skus nieco taketo(bez adodb):
$connection = mysql_connect(DBhost.':'.DBport, DBuser, DBpwd);
mysql_select_db(DBdbname,$connection);
mysql_query("SET character_set_results=UTF8",$connection);
mysql_query("SET character_set_connection=UTF8",$connection);
mysql_query("SET character_set_client=UTF8",$connection);
$result=mysql_query("select nieco from nieco",$connection);
while ($data=mysql_fetch_array($result))
       {
       echo $data[nieco].'
'; }
ak ti to takto vypise data korektne s diakritikou, problem bude asi niekde v adodb
18.6.2006 15:57 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Zkusil jsem to výše, ale nepodařilo se mi zprovoznit tu smyčku, tak jsem okopíroval něco z php.net, takže se celý obsah databáze vypíše na web. Hledej na té stránce číslovku 30, vedle ní je ta diakritika a správně. Znamená to, že je chyba v tom, jak CMS přistupuje k databázi? Protože proč mi to jinak na locale jde a pouze při přenosu toho dumpu na webhost to nefunguje?
18.6.2006 16:12 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
nasledujuce brat ako moj nazor (ale myslim ze spravny :) ): mysql ma ako default svedske kodovanie - vtedy nevytiahnes data s diakritikou spravne pokial niekde nenastavis to co som pisal:
SET CHARACTER SET 'utf8';  
SET NAMES 'utf8';
SET character_set_connection=UTF8
SET character_set_client=UTF8
moze byt ze doma to mas nastavene priamo v mysql na utf-8.

ak si pozries parametre aktualneho pripojenia mal by si vidiet nieco taketo:
mysql> status

Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
+ skontroluj este ci mas na strankach, kde to kodovanie neide korektne nastavene kodovanie:
m e t a http-equiv="Content-Type" content="text/html; charset=utf-8"/
18.6.2006 16:16 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
+ este ma napadlo: skus pridat nejaky prispevok cez to cms (na verzii kde neide kodovanie) - zobrazi sa novy prispevok spravne ???
18.6.2006 16:27 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Co se MySQL doma týče, mám ji skutečně defaultně nastavenou na UTF-8, v my.cnf mám ve všech sekcích default-character-set=utf8.
mysql> status
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
... tedy souhlasí. Když jsem přidal text přes ten cms na webu, tak se tento text zobrazil správně. Předpokládám, že z toho vyplývá, že mysql používá jiné kódování databáze, nebo se pletu?
18.6.2006 16:42 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Předpokládám, že z toho vyplývá, že mysql používá jiné kódování databáze, nebo se pletu?
bud to (=musis to niekde nastavit- v aodb sa nevyznam), alebo je blbo spraveny ten dump, cez ktory si to importoval. ine ma uz nic nenapada
18.6.2006 17:27 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Teda, to je mi líto, myslel jsem, že je chyba někde u mě. Chápu to tedy správně tak, že data se při uploadu toho dumpu sice uloží v kódování UTF-8, ale MySQL je posílá jako nějaké jiné kódování? Nedá se tedy nějak nastavit MySQL, aby to pro konkrétní databázi nedělala? Měl jsem za to, že to právě ovlivňuje ta položka MySQL connection collation.
18.6.2006 18:19 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
zhrnutie:

1. data z dumpu sa nacitaju spravne ak sa nepouzije adodb a nastavi sa kodovanie spojenia manualne na utf

2. nove data sa ulozia aj nacitaju spravne pri pouziti adodb (ale pravdepodobne nie v utf)

mne z toho vyplyva ze ten aodb driver nenastavi spravne kodovanie pri spojeni s databazou - ale ako som pisal nepoznam velmi adodb = neviem ako to nastavit :( (malo by to byt v nejakom konfigu)
Chápu to tedy správně tak, že data se při uploadu toho dumpu sice uloží v kódování UTF-8, ale MySQL je posílá jako nějaké jiné kódování?
myslim ze je to tak
Nedá se tedy nějak nastavit MySQL, aby to pro konkrétní databázi nedělala?
da sa to nastavit pre konkretne spojenie (set names, set charecter set atd.), ale zas neviem kde v adodb
Měl jsem za to, že to právě ovlivňuje ta položka MySQL connection collation.
collation pokial viem ovplyvnuje iba porovnavanie (zoradovanie) - aby bolo napr. c pred č
18.6.2006 21:15 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Shrnutí sedí, zřejmě to v ničem jiném nebude, než v tom adodb ovladači. Bohužel ta verze, co je obsažená v tom CMS, žádnou konfiguraci nenabízí. :-( Přinejhorším zkontaktuju autory CMS :-)
18.6.2006 18:30 tully | skóre: 9 | blog: tully
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
skus zmenit v adodb-mysql.inc.php (u mna line 336)
function _connect($argHostname, $argUsername, $argPassword, $argDatabasename)
	{
		if (ADODB_PHPVER >= 0x4300)
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
												$this->forceNewConnect,$this->clientFlags);
		else if (ADODB_PHPVER >= 0x4200)
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
												$this->forceNewConnect);
		else
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword);
	
		if ($this->_connectionID === false) return false;
		if ($argDatabasename) return $this->SelectDB($argDatabasename);
		return true;	
	}
na

function _connect($argHostname, $argUsername, $argPassword, $argDatabasename)
	{
		if (ADODB_PHPVER >= 0x4300)
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
												$this->forceNewConnect,$this->clientFlags);
		else if (ADODB_PHPVER >= 0x4200)
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
												$this->forceNewConnect);
		else
			$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword);
	
		if ($this->_connectionID === false) return false;
		if ($argDatabasename) return $this->SelectDB($argDatabasename);
		mysql_query("SET character_set_results=UTF8",$this->_connectionID);
    		mysql_query("SET character_set_connection=UTF8",$this->_connectionID);
    		mysql_query("SET character_set_client=UTF8",$this->_connectionID);
		return true;	
	}
podla kolegu je to bldost, lebo ADODB ma pre mysql kodovanie poriesene a malo by to ist, ale nic ine ma uz fakt nenapada
18.6.2006 21:10 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Ten CMS používá jakousi verzi lite, takže ta funkce je trošku jiná, každopádně jsem se ji snažil podobně poupravit a nic :-( Jsem bezradný, nechám to asi pár dní uzrát a pak se na to vrhnu znovu. Díky moc za pomoc.
18.6.2006 14:30 razor | skóre: 33
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím teda jestli to vyřeší tvůj problém ale skus se mrknout na faq jestli si to nečetl.
18.6.2006 14:58 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: MySQL, přenos databáze z localhostu na webhost, problémy s kódován
Jojo, to jsem četl, děkuji, ale zřejmě je ten problém jinde :-(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.