[ biske86 @ 24.08.2010. 17:47 ] @
Skinuo sam instalaciju mysql-a 5.5.5m3 u obliku .tar arhive. Raspakovao sam je unutar CentOS-a i tamo sam video da postoji 5-6 paketa sa ekstenzijom .rpm. U dokumentaciji sam video da je najnužnije da se instalira mysql-server paket ali da bi pristupali mysql-u poželjno je instalirati i mysql-client. To nisam uradio iz konzole već preko grafičnog okruženja tj. preko programam za upravljanje paketima. Restartovao sam sitem i pokrenuo:
mysql --version
i pisalo je da je verzija 5.5.5m3.

E sada kada sam hteo da se ulogujem kucao sam:
mysql -u root -p

nakon toga sam bio upitan za šifru i pošto nisam postavljao šifru pritisnuo sam enter i dobio sam poruku o grešci:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

E sada čitao sam u dokumentaciji da posle instalacije treba da se pokrene skripta mysql_install_db koja podešava privilegije ali nisam siguran da li je to odrađeno prilikom pokretanja onih .rpm fajlova ili treba ručno da odradim.

Ja sam probao ručno da odradim i dobijam neku poruku o grešci:

Code:
Installing MySQL system tables...
100824 20:43:46 [Note] Buffered information: Performance schema disabled (reason: start parameters).

100824 20:43:46 [ERROR] Incorrect definition of table mysql.proc: expected column 'returns' at position 9 to have type longblob, found type char(64).
ERROR: 1136  Column count doesn't match value count at row 1
100824 20:43:47 [ERROR] Aborting

100824 20:43:47 [Note] /usr/sbin/mysqld: Shutdown complete


Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

You can try to start the mysqld daemon with:

    shell> /usr/sbin/mysqld --skip-grant &

and use the command line tool /usr/bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/bin/mysql -u root mysql
    mysql> show tables

Try 'mysqld --help' if you have problems with paths.  Using --log
gives you a log in /var/lib/mysql that may be helpful.

Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS.  Another information source are the
MySQL email archives available at http://lists.mysql.com/.

Please check all of the above before mailing us!  And remember, if
you do mail us, you MUST use the /usr/bin/mysqlbug script!

[ bogdan.kecman @ 24.08.2010. 17:58 ] @
mysql_install_db se pozove automatski kada instaliras iz rpm-a, da li si instalirao i mysql-client?
da li si vec imao instaliran mysql na toj masini?

iz ovoga sto ja vidim ti si instalirao mysql 5.5.5 ali si imao na masini neki stari mysql (Incorrect definition of table mysql.proc ..) tako da prvo upgradeuj taj filesystem na novi mysql (mysql_upgrade skripta)
[ agvozden @ 24.08.2010. 18:02 ] @
nije ti lepo instaliran mysql server

najbolje da to uradis preko yum-a:

yum install mysql
yum install mysql-server
service mysqld start


[ bogdan.kecman @ 24.08.2010. 18:15 ] @
5.5.5 nije ni u jednom repozitorijumu tako da se nece bas usreciti sa mysql-om iz yum-a, ( da ne spominjem da je mysql binaries koji pravi red-hat sramotan )

moze sa yum da se odradi localinstall ali to ume da bude noz sa dve ostrice posto se rh rpm-ovi i mysql rpm-ovi drugacije zovu pa ume da se napravi haos

najsigurnije varijanta je u stvari
rpm -qa | grep -i ^mysql
da vidis sta imas instalirano od mysql server/klijent/libraries

onda sa rpm -e --nodeps --force mysql mysql-client mysql-server ... i tako sve sto ima veze sa mysql-om

pa onda rpm -i mysq-server ... sta si vec skinuo sa http://dev.mysql.com

[ tarla @ 25.08.2010. 11:03 ] @
Od nezavisnih repo-a preporučujem

http://www.jasonlitka.com/yum-repository/

i

http://blog.famillecollet.com/pages/Config-en

Mada mislim da ni jedan od njih nema ništa novije od 5.1.x

[ bogdan.kecman @ 25.08.2010. 12:48 ] @
nijedan ne koristi mysql binaries nego koriste redhat binaries. razlika je ogromna. pod velikim teretom redhat binaries imaju cudo problema i jedno 20% losije performanse.

Inace, ja koristim na serverima ili rhel ili centos kao os (ekskluzivno) i na njima kao mysql koristim .tar.gz paket, uopste ne stavljam rpm-ove. Ostavim mysql.rpm paket koji dodje uz centos i njegove originalne biblioteke i to ne diram, ne instaliram mysql-server ili kako se vec zove centosov paket a mysql instaliram tar.gz u /usr/local/mysql. Kada je mysql u pitanju nista mi rpm management ne radi posao (necu da mi on automatski radi upgrade, install/uninstall). Ako neki klijent zahteva rpm (ne mysql-ov klijent, moj klijent nevezano za mysql) ja napravim rpm od tar.gz paketa sa dev.mysql.com, cak ni mysql rpm binary ne koristim .. to je sad malo preterivanje al ..

da zakljucim, ako je vasa distribucija podrzana od strane mysql-a (mozete da nadjete binaries na dev.mysql.com) - koristite binaries sa dev.mysql.com umesto binaries koji dolaze uz distro.

posto znam da sledi pitanje "zasto"...

svaki distro ima svoja "pravila" kako se kompajliraju binaries i ta pravila su odlicna "an generale" ali nisu optimalna za sve "krajnje slucajeve". Aplikacija kao sto je rdbms (u ovom slucaju mysql) uvek spada u te "krajnje slucajeve", mysql ce praviti veci io na masini od svih ostalih procesa zajedno i slicno. treba mu (u slucaju ozbiljnog servera) vise ram-a nego svim ostalim aplikacijama zajedno, hoce da kesira neki pristup disku a neki ne i td ... sa noviijim glibcom nije vise toliki problem ali recimo da je za prosli glibc patch za glibc sa kojim je kompajliram mysql bio preko 7M !! dalje, razlicite "budzevine" po glibc-u koje dodaju razni distro-i menjaju isti na razlicite nacine i uticu na locking i razne tajminge, sve to nije testirano sa mysql-om od strane mysql-a vec samo od strane distro maker-a a oni testiraju otprilike "dal se kompajlira" i to je to... neki debian patchevi za glibc i za kernel na primer usporavaju mysql "konstantno" oko 10% + dovode do "cudnih" i "tesko debagovanih" lokova u mysql-u (ako imate debian, i mysql vam ponekad "zakoci na 5-6 minuta" i onda "proradi" sam od sebe - o tome pricam) ... fora je sto ti patchevi pomazu ako jedna masina treba da tera 5000 procesa, ali ako treba na masini da radi 1 ozbiljan proces taj patch samo smeta ...

elem, za testiranje "dal radi ovo ili ono", svaki binary je dovoljno dobar, ali ako terate production server jako je bitno koji binary koristite
[ bogdan.kecman @ 25.08.2010. 12:49 ] @
nego biske, jesi resio problem il ?
[ biske86 @ 25.08.2010. 14:06 ] @
Izvinjavam se što nisam odgovorio ranije, bio sam zauzet oko baze.
Očigledno da nešto nisam dobro odradio. Na CentOS-u 5.4 je prethodno instaliran neki 5.0 mysql. E sad ono što je najčudnije je što sam ja hteo da idem kraćim putem ali sam očigledno pogrešio. Ja sam hteo instalaciju 5.5.5 zbog toga što je na njemu podrazumevano postavljen storidž endžin na InnoDB. Zašto mi je ovo bitno? Pa zbog toga što kada generišem šemu baze iz ERwina na server on napravi baze u podrazumevanom endžinu. Na 5.0 to je MyISAM i onda ja nemam spoljne ključeve i referencijalni integritet. To nisam primećivao do skoro, dok nisam napravio model u Vorkbenču. Mislio sam da tokom deinstalacije stare baze odnosno instalacije nove neće nešto nepredviđeno krenuti. Mislio sam da ću to brzo da odradim pošto imaju rpm paketi za CentOS. Međutim očigledno da nešto nisam dobro odradio.
Deinstalirao sam sve što imam veze sa mysql-om, i instalirao novu verziju. Ali najpre je prijavljivao da mogu da se prijavim bez lozinke. Odradio sam to preko mysqld_safe i onda postavio root lozinku. Onda sam mogao da se ulogujem. Ali sam onda imao problema da pristupim sa drugih mašina ako sam u tabeli user stavio % umesto localhost.
Onda sam slučajno na internetu našao jedno veoma dobro rešenje za moj problem. Naime ja sam mislio da je komplikovano da se promeni storidž endžin ili da mora sistem ponovo da se kompajlira ali sam se prevario. Naime bilo je potrebno samo da se uđe u mysql i da se otkuca:
SET GLOBAL storage_engine=InnoDB;

Ovo je postavilo podrazumevano za server InnoDB i tako sam rešio deo problema. Nakon toga sam odradio ostale stvari koje su mi trebale. Evo tek sad sam završio.
Hvala vam na pomoći.

E sad za ubuduće lepo bi bilo da znam da izbrišem mysql sa CentOS-a. Probaću sa ovim komandama koje ste postavili pa ću da javim šta je bilo.

Pozdrav.
[ bogdan.kecman @ 25.08.2010. 14:27 ] @
Citat:
biske86: Izvinjavam se što nisam odgovorio ranije, bio sam zauzet oko baze.

samo opusteno :)
Citat:
biske86
Mislio sam da tokom deinstalacije stare baze odnosno instalacije nove neće nešto nepredviđeno krenuti. Mislio sam da ću to brzo da odradim pošto imaju rpm paketi za CentOS. Međutim očigledno da nešto nisam dobro odradio.
Deinstalirao sam sve što imam veze sa mysql-om, i instalirao novu verziju.

tu je "problem" sto deinstalacija ne brise tabele iz datadir-a, a instalacija novog isto tako ne dira iste a format je promenjen malo izmedju 5.0 i 5.5 pa rucno mora mysql_upgrade da se odradi

Citat:

SET GLOBAL storage_engine=InnoDB;
Ovo je postavilo podrazumevano za server InnoDB i tako sam rešio deo problema. Nakon toga sam odradio ostale stvari koje su mi trebale. Evo tek sad sam završio.
Hvala vam na pomoći.


:D vrlo zanimljiv razlog da se upgradeuje mysql na 5.5.5 :D

u my.cnf u mysqld sekciju stavi

default_storage_engine=innodb

i kada sledeci put startujes mysql bice default engine innodb (da ne bi morao svaki put ono set global - posto to nestane posle reseta)
http://dev.mysql.com/doc/refma..._mysqld_default-storage-engine

Citat:

E sad za ubuduće lepo bi bilo da znam da izbrišem mysql sa CentOS-a. Probaću sa ovim komandama koje ste postavili pa ću da javim šta je bilo.


obrati paznju da rpm -e nece obrisadi sadrzaj datadira, default datadir lokacija na rh-u je /var/lib/mysql (ili bese /usr/lib/mysql proveri oba mesta)