LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: článek MySQL (58) - čeština v praxi

prevod phprs a phpbb 10.2.2006 17:25
Petr Bartel

Ahoj,

tak ja jsem se v tom uz uplne ztratil jeden server kde mi bezi debian sarge mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i386) a Server version: Apache/1.3.33 (Debian GNU/Linux) a tudiz i database phpbb_borek a phprs. Nastaveni virtualhosta

<VirtualHost *>
        ServerAdmin webmaster@irix.cz
        DocumentRoot /usr/local/www/beh3.tabornici-kladno.com
        ServerName beh3.tabornici-kladno.com
        ErrorLog /usr/local/www/beh3.tabornici-kladno.com/logs/beh3.tabornici-kladno.com-error.log
        CustomLog /usr/local/www/beh3.tabornici-kladno.com/logs/beh3.tabornici-kladno.com-access.log common
        AddDefaultCharset ISO-8859-2
        <directory /usr/local/www/beh3.tabornici-kladno.com/>
                Options Indexes FollowSymLinks
                allow from any
        </directory>
        <directory /usr/local/www/beh3.tabornici-kladno.com/phpBB2>
                AddDefaultCharset WINDOWS-1250
                Options Indexes FollowSymLinks
                allow from any
        </directory>
</VirtualHost>

A mym ukolem a pranim je to premigrovat na na jiny server Debian Etch mysql Ver 14.12 Distrib 5.0.16, for pc-linux-gnu (i486) using readline 5.1 a Server version: Apache/2.0.55.


Ovsem ne a ne natrefit na spravnou kombinaci charset a collation, export/import. takze bych rad poprosil o radu

  1. Jak na puvodni serveru vydolovat data ? dump ?
  2. pouzit na novem server implicitne utf8 ? souvisi s tim i nastaveni locales ?
  3. jak nastavit novou mysql , kam do ktere sekce co [mysql-client]... v soucasnosti jsem to vratil do defaultu
    character_set_client latin1
    character_set_connection latin1
    character_set_database latin1
    character_set_results latin1                     
    character_set_server latin1
    character_set_system utf8
    character_sets_dir /usr/share/mysql/charsets/
    collation_connection latin1_swedish_ci
    collation_database latin1_swedish_ci
    collation_server latin1_swedish_ci

  4. Bude potreba nastavit neco v phprs nebo phpbb napr. SET NAMES ... popr. prekonvertovat soucasne texty v souborech pomoci iconv, recode , enca na utf8 ?
  5. Jak nastavit potom apache2 virtual host

Dekuji moc za jakoukoli radu uz jsem z toho dost bezradny, prece jen nejsem schopen to nasosat z AJ dokumentace a prohlasuji ze jsem googlil dlouho, napr. php.vrana.cz ... ale proste jsem nebyl uspesny.


Diky moc
Petr Bartel
Re: prevod phprs a phpbb 10.2.2006 17:58
Petr Zajíc
Především, potřebujete UTF-8 nebo to chcete nechat v ISO-8859-2? Dále, na import/export tu máme několik dílů seriálu, možností je více, vyberte si (předpokládám, že máte k oběma serverům přístup a máte tam účet, takže možností bude spousta). V nastavení nové DB Vám nic nebrání udělat to jako postaru, přičemž locale si můžeže nastavit per database nebo per server.
Re: prevod phprs a phpbb 10.2.2006 18:08
Petr Bartel
Protoze jsem pochopil ze je to lepsi mit vsechno v jedne znakove sade, rad bych mel vsude pouze UTF8. Puvodne jsem jsem pomoci phpmyadmin dumpnul ty dve database a zkusil to za jen pomoci phpmyadmina naimportovat. Dalsi pokus byl s mezikrokem prekonvertovat to pomoci recode na utf8 a to potom naimportovat, to uz bylo lepsi. Kazdopadne mi neni jasne temer nic v bodech jak jsem se dotazoval tedy hlavne jak nastavit mysql oproti soucasnemu nastaveni viz. vyse.Dekuji moc Petr
Re: prevod phprs a phpbb 10.2.2006 19:13
Michal Molhanec
No proměnné character_set_client, character_set_results, character_set_connection by mělo odpovídat kódování příslušných PHP skriptů. Ty se nastaví příkazem SET NAMES, eventuelně v konfiguračním souboru parametrem default-character-set.

Jinak v zásadě globální nastavení MySQL právě už není moc důležité, protože kódování/řazení lze nastavit přímo pro jednotlivé databáze/tabulky/sloupce. Hlavně tedy ve výsledku je důležité nastavení kódování sloupce, to musí odpovídat jeho obsahu.

Jinak tady je takový malý MySQL čeština miniFAQ
Re: prevod phprs a phpbb 10.2.2006 20:16
Petr Bartel
diky, jdu cist a zkouset. Petr
Re: prevod phprs a phpbb 11.2.2006 08:52
Petr Zajíc
Jo, rozumím. Takže, jak to v takových případech dělám já:
  1. Exportuju data z PHPMyAdmina do textu, přičemž se ujistím, že výsledný text je v UTF8
  2. Zapomenu na to, že mám na cílovém stroji PphMyAdmin
  3. Pustím řádkového klienta a importuju do nové databáze. Přitom dávám pozor na to, abych zavolal SET NAMES a potom spustím zpracování mého milého texťáku pomocí příkazu SOURCE řádkového klienta. Pozn.: Source znamená, že následující příkazy budou pocházet ze souboru, ne z výchozího vstupu.
    Re: prevod phprs a phpbb 12.2.2006 18:35
    Petr Bartel

    Dekuji vam obema za rady,
    uspesne vyreseno, takto :

    mysql nastaveno na utf8 a klient na latin2, protoze mam locales na tom serveru na iso-8859-2
    [client]
    ...
    default-character-set = latin2

    [mysqld]
    ...
    default-character-set = utf8
    default-collation = utf8_czech_ci

    - phpadminem (jako backendem k mysqldump) exportovat ty db ,(byli v latin2)
    - recode l2..utf8 < file_in > file_out
    - mysql
    - set names utf8;
    - source /path/to/file
    - v phpbb, phprs a ostatnich aplikacich jsem nastavil napevno set names jak bylo potreba.

    a ejhle vse funguje jak ma a jen a jen kvuli tomutu serialu a vasim radam a take mysql manualu :)

    takze diky moc

    P.S. jestli jsem udelal nejakou zjevnou chybu se by se mi mohla pozdeji vymstit, prosim upozornete mne.

    S pozdravem
    Petr Bartel

    Re: prevod phprs a phpbb 12.2.2006 20:20
    Petr Zajíc
    Díky ;-)) To je v podstatě to, co jsem říkal, až na to, že místo abyste se ujistil, že db jsou v UTF8 jste věděl, že jsou v latin2 a použil recode. Což je v pořádku. Trochu je mi líto, že jsem utility pro konverzi nezmínil v článku; teď vím, že by to bylo možná potřeba...
    Re: prevod phprs a phpbb 13.2.2006 09:55
    o.k.

    Na konverzi doporucuji spise program iconv (protoze je primou soucasti GNU C knihovny) nez program recode.

    Iconv bude obsazen uplne ve vsech distribucich narozdil od programu recode.

    Ako sa sprava PHP? 20.6.2006 13:51
    Srigi
    dakujem autorovi za spracovanie tejto temy, ale stale mam otazky. Ako sa z pohladu klienta sprava PHP? Majme tento kod:

    mysql_query("INSERT INTO cestina (uft) values ('ľščťžýáíé')");


    V akom kodovani posle PHP string v uvodzovkach do SQL servera.
    Alebo podrobnejsie, mohli by ste mi prosim napisat ake je kde kodovanie po tejto ceste z hore uvedeneho prikladu:

    (file format utf8)pokus.php->webserver->sqlserver->database
    Re: Ako sa sprava PHP? 25.6.2006 07:24
    Petr Zajíc

    Z pohledu klienta se PHP chová tak, jak bylo uvedeno v článku:

    Tady není moc co dodat. Je třeba si uvědomit, že z hlediska databáze je PHP klient jako každý jiný, a že je tudíž namístě specifikovat v našich ctěných skriptech rovněž odpovídající příkaz SET NAMES, nějak takhle:

    Takže, data budou poslána v kódování nastaveném pomocí SET NAMES. Pokud SET NAMES nastaveno nebylo, pak pomocí výchozího kódování.

    import z csv pomoci php 19.1.2007 16:45
    Martin Havel

    Zdravim, pro provoz mysql a php na lokalu pouzivam xampp, cili mysql 5.0.27 pro verzi xamppu, kterou mam.
    Problem je, kdyz importuju data z csv souboru kodovanym v cp1250 (kodovani utf8 by neslo s funkci fgetcsv dohromady). Ve skriptu mam nastaveno iconv_/input/internal/output/_encoding taky cp1250, header taktez, pri lazeni skriptu mam i debugger nastavenej na cp1250, mysql ma nastaveno taky vsude cp1250 i na databazi (az na server, ale to by vadit nemelo, nefunguje to i s nastavenym server-default-characterset=cp1250) kterej je latin1.
    Do tabulky mi napadaj data bud spatne kodovany, nebo z ni spatne kodovany lezou, protoze nefunguje cestina a misto ni se zobrazuji "paznaky".. Nevite, co mam jeste vyzkouset?

    Re: import z csv pomoci php 20.1.2007 11:50
    Petr Zajíc

    Vím. SET NAMES. Php je klient, a jako takový hovoří k serveru v nějaké znakové sadě. Pomocí SET NAMES před započetím importu byste nastavil, že přicházející data jsou v nějaké znakové sadě. Jinak si bude databáze myslet, že data jsou ve výchozí znakové sadě, což nejsou.

    Re: import z csv pomoci php 22.1.2007 12:48
    Martin Havel

    Prikaz set names i set charset jsem provedl, ale vysledek zadny. Cele to vypada, ze jsou vsude nastaveny spravne znakove sady, ale nechova se to tak.. Pokud chcete, poslu vam muj php skript i csv soubor, nenapada-li vas, co by mohlo byt dale spatne.

    Re: import z csv pomoci php 22.1.2007 13:00
    Petr Zajíc

    klidně pošlete ... mail na mě je v profilu, pošlu Vám zpátky adresu. Nebo ta data někde vystavte, pokud nejsou tajná, a pošlete mi link.

    Re: import z csv pomoci php 22.1.2007 14:32
    Martin Havel

    http://download.yousendit.com/6CC52E7E3A1364AB takze link pro download kodu a csv souboru. Tajne neni nic, ani to, ze ten kodu jiste muze byt i lepsi:) Nicmene funguje, coz mi staci.

    Re: import z csv pomoci php 22.1.2007 17:14
    Petr Zajíc

    Pokud neumíte ani opsat text z článku, pak je to těžké. Vy máte v kódu

    $names = "set names cp1250";
    

    zatímco v článku je

    mysql_query("SET NAMES 'cp1250';"); //nebo 'latin2' nebo 'utf8' 
    

    a ještě pro jistotu je to tam tučně.

    Re: import z csv pomoci php 23.1.2007 09:00
    Martin Havel

    jisteze, jenomze o dva radky dal predavam promennou $names jako parametr: "mysql_query($names,$link);"
    Je to sice zbytecne rozvlekle, ale na funkcnosti to nic nemeni.

    Re: import z csv pomoci php 23.1.2007 11:21
    Petr Zajíc

    Aha, tak jsště polopatičtěji. CHYBĚJÍ VÁM TAM APOSTROFY. Už je to jasné?

    set names cp1250
    

    není totéž jako

    set names 'cp1250'
    
    Re: import z csv pomoci php 24.1.2007 10:15
    Martin Havel

    Zvláštní.. pro zkoušku jsem napsal toto:
    <?php
    header("Content-Type: text/html; charset=cp1250");
    iconv_set_encoding("input_encoding","cp1250");
    iconv_set_encoding("output_encoding","cp1250");
    iconv_set_encoding("internal_encoding","cp1250");
    mysql_connect("localhost","root");
    mysql_query("set names 'cp1250';");
    mysql_query("set charset 'cp1250';");
    mysql_query("create database if not exists pokus default charset 'cp1250';");
    mysql_query("use pokus");
    mysql_query("create table if not exists tabulka (sloupec1 varchar(40) not null primary key)");
    mysql_query("insert into tabulka (sloupec1) values (\"čočka\")");
    mysql_close();
    ?>
    Myslím, že je to správně - všechny dotazy se provedou - přesto však "čočka" vypada jako "?o?ka".
    Abych předešel prípadným syntatickým nedorozuměním, zkoušel jsem dokonce dát do apostrofů iconv a header názvy charsetů:)

    Re: import z csv pomoci php 24.1.2007 10:39
    Martin Havel

    ... problém je někde mezi klientem a skriptem, jelikož zadavaní čeětiny ručně v mysql konzoli funguje.. Jestli Vám je jasné proč, tak mě ne a hlavě - nemám se koho zeptat;-)

    Re: import z csv pomoci php 24.1.2007 13:08
    Petr Zajíc
    Kód
    <?php
    mysql_connect("localhost","root");
    mysql_query("set names 'cp1250';");
    mysql_query("create database if not exists pokus default charset 'cp1250';");
    mysql_query("use pokus");
    mysql_query("create table if not exists tabulka (sloupec1 varchar(40) not null primary key)");
    mysql_query("insert into tabulka (sloupec1) values (\"čočka\")");
    mysql_close();
    ?>
    

    Vykopírujte a uložte jako php soubor. Ujistěte se, že je uložen v kódování cp1250 a ne UTF-8 a spusťte jej. testováno, funguje.

    Re: import z csv pomoci php 24.1.2007 16:04
    Martin Havel

    Výborně, tak to funguje alespoň Vám. Asi bude u mě chyba někde v editoru, nebo už nevím.. Budu zkoušet. Každopádně děkuji.

    Re: import z csv pomoci php 24.1.2007 17:48
    Petr Zajíc

    jde o to, co používáte za editor. Jste si jist, že ukládá v cp1250?

    Re: import z csv pomoci php 24.1.2007 18:22
    Martin Havel

    používám PHPEDit 2.8.0.3997 pro php, který snad umí ukládat do cp1250 - kontrolováno pspadem. Mysql 5.0.27, php 5.2.0 - xampp 1.5.5 - winXP.. V podstate je mi jedno, jakou znakovou sadu používat, ale ve skriptu používam funkci fgetcsv, která by asi utf8 soubor nezvládla.

    Re: import z csv pomoci php 25.1.2007 07:24
    Petr Zajíc

    Pak to zkrátka musí fungovat.


    KOMENTARZE
    prevod phprs a phpbb 10.2.2006 17:25 Petr Bartel
    L Re: prevod phprs a phpbb 10.2.2006 17:58 Petr Zajíc
      L Re: prevod phprs a phpbb 10.2.2006 18:08 Petr Bartel
        |- Re: prevod phprs a phpbb 10.2.2006 19:13 Michal Molhanec
        | L Re: prevod phprs a phpbb 10.2.2006 20:16 Petr Bartel
        L Re: prevod phprs a phpbb 11.2.2006 08:52 Petr Zajíc
          L Re: prevod phprs a phpbb 12.2.2006 18:35 Petr Bartel
            |- Re: prevod phprs a phpbb 12.2.2006 20:20 Petr Zajíc
            L Re: prevod phprs a phpbb 13.2.2006 09:55 o.k.
    Ako sa sprava PHP? 20.6.2006 13:51 Srigi
    L Re: Ako sa sprava PHP? 25.6.2006 07:24 Petr Zajíc
    import z csv pomoci php 19.1.2007 16:45 Martin Havel
      L Re: import z csv pomoci php 20.1.2007 11:50 Petr Zajíc
        L Re: import z csv pomoci php 22.1.2007 12:48 Martin Havel
          L Re: import z csv pomoci php 22.1.2007 13:00 Petr Zajíc
            L Re: import z csv pomoci php 22.1.2007 14:32 Martin Havel
              L Re: import z csv pomoci php 22.1.2007 17:14 Petr Zajíc
                L Re: import z csv pomoci php 23.1.2007 09:00 Martin Havel
                  L Re: import z csv pomoci php 23.1.2007 11:21 Petr Zajíc
                    L Re: import z csv pomoci php 24.1.2007 10:15 Martin Havel
                      L Re: import z csv pomoci php 24.1.2007 10:39 Martin Havel
                        L Re: import z csv pomoci php 24.1.2007 13:08 Petr Zajíc
                          L Re: import z csv pomoci php 24.1.2007 16:04 Martin Havel
                            L Re: import z csv pomoci php 24.1.2007 17:48 Petr Zajíc
                              L Re: import z csv pomoci php 24.1.2007 18:22 Martin Havel
                                L Re: import z csv pomoci php 25.1.2007 07:24 Petr Zajíc
    Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
    > Szukanie oprogramowania
    1. Pacman linux
    Download: 4852x
    2. FreeBSD
    Download: 9044x
    3. PCLinuxOS-2010
    Download: 8541x
    4. alcolix
    Download: 10916x
    5. Onebase Linux
    Download: 9631x
    6. Novell Linux Desktop
    Download: 0x
    7. KateOS
    Download: 6219x

    1. xinetd
    Download: 2383x
    2. RDGS
    Download: 937x
    3. spkg
    Download: 4693x
    4. LinPacker
    Download: 9918x
    5. VFU File Manager
    Download: 3173x
    6. LeftHand Mała Księgowość
    Download: 7171x
    7. MISU pyFotoResize
    Download: 2776x
    8. Lefthand CRM
    Download: 3540x
    9. MetadataExtractor
    Download: 0x
    10. RCP100
    Download: 3089x
    11. Predaj softveru
    Download: 0x
    12. MSH Free Autoresponder
    Download: 0x
    ©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz