Автор Тема: mysql 4.0 -> 4.1 - Как?  (Прочетена 1150 пъти)

exabyte

  • Напреднали
  • *****
  • Публикации: 177
    • Профил
mysql 4.0 -> 4.1 - Как?
« -: Jul 24, 2005, 00:37 »
По-точно как да INSERT-на данни на кирилица в таблица с charset cp1251? Трябва ми, за да си вкарам dump-а.

INSERT ...... 'алабала'; и после са на въпросителни
опитах и
INSERT ...... 'алабала'; и пак ги реже.

Пробвах set names cp1251;
Сменях системния locale преди да пускам mysql и пак не става. (Това не знам що го пробвах?)
Изобщо има ли начин да се сложат данни на кирилица в таблица с cp1251 encoding? Изобщо каквито и да е значи от 128 нагоре?
Таблиците с UTF8 encoding си работят...

Някой да каже, или да ми dump-не някоя малка табличка и да покаже как изглежда.... Видях се в чудо, вече 5-6 часа го боря това.

П.П. Slackware current...

П.П.П. Ако просто ги оставя latin1 като че ли всичко е наред, и за сега така ще ги оставя, ама дайте все пак идеи...
Активен

Светът е мой враг, който иска да ме унищожи, но аз ще унищожа него.

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #1 -: Jul 24, 2005, 13:39 »
Братко,
дай едно по едно, малко не се разбира какво точно се опитваш да направиш. Първо питаш за разликата между две версии, после питаш за кодиране.
Лично при мен работи следното:
mysqladmin -u root -p create baza
mysqladmin -u root -p baza < baza_backup.sql
(тук разбира се пропускам задаване на права, потребител и прочие)
Но имай предвид, че това което използвам са само бази данни на уеб приложения - т.е. направил съм ги и после не съм се разправял допълнително с тях, освен да им направя някой и друг backup.  Не съм особено напред с mysql. Пробвал ли си с phpmyadmin?
Виж и последните постове на тази тема:
http://www.linux-bg.org/cgi-bin....;t=9651
Активен

It makes you awful glad that you were born a man.

exabyte

  • Напреднали
  • *****
  • Публикации: 177
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #2 -: Jul 24, 2005, 16:45 »
Хм, ами за сега си реших проблема като оставих всичко в encoding latin1.

Тоест, за да тръгне новия mysql просто трябвало да не променям нищо и той си тръгвал от самосебе си. Бяха ме наплашили, че има проблеми, и аз затова се правих на идиот, четох документация и накрая си създадох проблеми, както и часове главоболия. А то всичко било просто - default encoding latin1, всички таблици latin1 и старите приложения си работят с базите все едно все още е стария mysql.

Иначе, щом питаш да ти обясня по-ясно какво исках да направя... Ами целта ми беше всяка таблица да има настроен за encoding съответния encoding на данните вътре в нея. За съжаление това просто не стана. Първия камък, в който се спънах - не можах да вмъкна данни на кирилица в таблица с cp1251 кодиране.

Просто вмъквайки данни на кирилица, те излизаха на въпросителни. Това включва и невъзможността да си вкарам dump-а на старата база със съответните данни, както и невъзможността да си използвам приложенията със съответните таблици - просто INSERT на данни на кирилица (от приложение или dump) не става.

Иначе, ако не ме беше препънало това, щях да си модифицирам леко приложенията и всичко щеше да работи като хората.

Значи, на практика си реших проблема с upgrade-а на mysql-а, но все още търся решение на проблема с използването на encoding и mysql 4.1.

Някой може ли да ми обясни като на идиот как се работи с таблица с encoding cp1251? По описания в документацията начин не става. Тоест, в документацията нищо не е описано, единственото, което намерих е сменяне на encoding-а на връзката, но той с нищо не ми помогна - той принципно е същия като default encoding, който ми беше cp1251 и кирилицата пак не работеше. Та, ако има желащи да обясняват на идиоти, да ми кажат как става.

Също имах някакъв проблем с UTF8 таблиците - dump-а си влиза, но после приложението не работи, ама предполагам това последното е нормално и ако си разреша предния проблем ще съм наясно какво да оправя в приложението, че да работи. '<img'>
Активен

Светът е мой враг, който иска да ме унищожи, но аз ще унищожа него.

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #3 -: Jul 24, 2005, 18:32 »
Братко, не е зле някой да ни обясни и на двамата, зашото и аз не знам отговора на твоя въпрос. Не съм сигурен, но мисля, че за отделна таблица не можеш да задаваш отделно кодиране. Пак казвам - никак не съм убеден в това, а не ми се търси. Другото в което не съм убеден е това, че mysql си прави собствено кодиране за различните charset - т.е. данните които използват web приложенията за които споменах предния път са с cp1251, а информацията в самите таблици игелжда ето така:
Цитат
&#208;&#157;&#208;µ&#208;°&#208;&#180;&#208;&#188;&#208;&#184;&#208;&#189;&#208;&#184;&#209;&#129;&#209;‚&#209;?&#208;°&#209;‚&#208;&#190;&#209;?

Което всъщност е името ми в някакъв вариант на кодиране. Предполагам, че това е така, за да може да бъдат изобразена информацията в таблицита в различните варианти на кодирания (предполага се, че щом използвам web приложения, то бих искал те да могат да бъдат видяни по няколко различни начина от различни места).
Разбира се, това са разсъждения в свободен стил - просто в момента mysql е някъде назад в реда на нещата които трябва да науча, така че ако някой влее светлина и поправи моето незнание ще съм безкрайно благодарен.
Активен

It makes you awful glad that you were born a man.

exabyte

  • Напреднали
  • *****
  • Публикации: 177
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #4 -: Jul 24, 2005, 19:24 »
http://dev.mysql.com/doc/mysql/en/charset-defaults.html
И на отделните таблици може, и на отделните колони може. Но нещо съм тъп и не правя нещата както трябва - не работи. '<img'>

А това, което виждаш не е от mysql, ами е от приложението, или не точно... Когато във форма въведеш знаци, които ги няма в кодирането на страницата, твоят web browser ги изпраща в този вид (това са HTML кодовете на съответните значи). После когато гледаш резултата, ако прилжението предполага, че си въвеждал HTML във въпросното поле, или ако специално авторите му са се сетили за този случай, то ще излязат знаците, които ти си бил въвел, но в базата ще бъдат като HTML кодове.

Тоест, с други думи, вероятно не си настроил кирилицата на въпросното приложение и си го оставил със стандартното кодиране (ISO-8895-1) и затова така става.

Ето един пример. Ако разглеждаш кода на статията ще забележиш знаци на кирилица, както и такива с HTML код. Вероятно вторите са отпреди en.wikipedia да мине на UTF-8 кодиране, а ползваше ISO-8859-1, а първите са от евентуални редакции на статията след това.
Активен

Светът е мой враг, който иска да ме унищожи, но аз ще унищожа него.

alabal

  • Напреднали
  • *****
  • Публикации: 2173
  • cat /earth/europe/bg/sofia | grep Nacamura
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #5 -: Jul 24, 2005, 23:43 »
Благодаря за информацията, братко!
Активен

It makes you awful glad that you were born a man.

  • Гост
mysql 4.0 -> 4.1 - Как?
« Отговор #6 -: Aug 15, 2005, 23:21 »
pichove kompiliraite si mysql kato horata bre !!!

server s with-charset=cp1251 extra=all
client s with-charset=cp1251 extra=all

i ne prelivaite s mysqldump

samo s fs , spirate mysql-a
 copy na na celiq db dir za vseki sluchai '<img'>
backup mu e maikata da ne me psuvate posle ':p'
i posle koeto ne stane (ot 3 G bazi samo edna tablica mi se beshe lekichko omazala)
tva neshto si raboti bezotkazno i poluchavate ei tva :
Server characterset:    cp1251
Db     characterset:    cp1251
Client characterset:    cp1251
Conn.  characterset:    cp1251
i ste gotovi za zimata !
po toq nachin se dignah napravo ot 3.23.5x do 4.1.13
i to bez nikakvi iadove.
Uspeh !
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
mysql 4.0 -> 4.1 - Как?
« Отговор #7 -: Aug 16, 2005, 00:04 »
За практика ... това е силно грешно решение ... да речем че ти изрежат поддръжката на енджина -> holly Shit

За мен правилното решение (непроверено) е mbsthing + charset (charset на mysql-а разбира се.)
Пак подчертавам не съм го пробвал. Да чукна на дърво за момента ползвам готови проекти които са разработени да работят с UTF-8 и в момента данните в phpmyadmin изглеждат много страшно но приложенията работят.
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
mysql 4.0 -> 4.1 - Как?
« Отговор #8 -: Aug 16, 2005, 13:59 »
@neshto ot praktikata - мисли преди да пишеш нещо, моля те.

В mysql версия > 4.x има наистина поддръжка на различен encoding за таблица, поле, база и сървър, по отделно. Всичко това е наред и си работи перфектно. Проблемите идват ако искаме (както колегите по-горе) да бутнем вътре данни от по-стара версия. При старите версии (вкл. 4.0) данни за encoding не се пазят - разчита се, че човека, който е сложил данните там, знае в какъв encoding са и ще си ги оправи. Проблема идва при дъмп от старите версии. Ако използвате mysqldump може да се дъмпне първо само една таблица (или повече, или цялата база или всички бази ) , второ да се определи дали ще е само структурата или и данните и трето (но не на последно по важност място) - какъв да се счита encoding-а на данните, които излизат. При кирилица в ср1251 в стара база аз лично ползвам:
mysqldump --default-character-set=cp1251
Импортвам в таблица с encoding cp1251-bulgarian-ci и всичко е наред. Понякога се налага и SET NAMES cp1251 , както и SET COLLATION CONNECTION CP1251 , когато се прави връзка към базата, но това в случай, че цялата тя е в това кодиране.
Благодаря ви за търпението.

P.S. - това с копирането, ако те види работодателя ти че го правиш ше ти скъса главата - не можеш да спираш и да пускаш сървър за база данни, когато си искаш
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
MySql малък проблем.
Хардуерни и софтуерни проблеми
Marto 6 4505 Последна публикация Sep 25, 2002, 12:32
от
mysql въпрос
Настройка на програми
dumi 0 1381 Последна публикация Oct 08, 2003, 06:42
от dumi
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 5216 Последна публикация Sep 07, 2004, 17:02
от jica
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 7039 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 5417 Последна публикация Mar 16, 2008, 01:17
от neter