mysql niedorobione

Tomasz Pala gotar w polanet.pl
Sob, 14 Sie 2004, 13:41:10 CEST


On Sat, Aug 14, 2004 at 12:04:18 +0200, Arkadiusz Miskiewicz wrote:

> > # rpm -q mysql
> > mysql-4.0.20-1
> > mysql-4.0.20-3
> >
> > # rpm -e mysql-4.0.20-1
> > Converted clusters from MYSQL_DB_CLUSTERS to /etc/mysql/clusters.conf.
> > Take a look at that.
> >
> > No genialnie, trzeba ręcznie usunąć, to sam skonwertuje. Uradowani tym
> > faktem restartujemy ręcznie mysqla:
> Co trzeba ręcznie usunąć?

Poprzednią wersję pakietu, która nie została wyinstalowana podczas
upgrade, gdyż %post* zwrócił błąd.

> > # /etc/rc.d/init.d/mysql stop
> > Warning: MYSQL_DB_CLUSTERS is set. It's obsolete. Use
> > /etc/mysql/clusters.conf instead. /etc/rc.d/init.d/mysql[596]: [:
> > /var/lib/mysql/mysqld.conf: unexpected operator/operand MySQL
> > /var/lib/mysql service is not running.
> > /etc/rc.d/init.d/mysql[596]: [: /var/lib/mysql/mysqld.conf: unexpected
> > operator/operand MySQL /var/lib/mysql service is not running.
> > /etc/rc.d/init.d/mysql[596]: [: /var/lib/mysql/mysqld.conf: unexpected
> > operator/operand /etc/rc.d/init.d/mysql[596]: [:
> > /var/lib/mysql/mysqld.conf: unexpected operator/operand
> Możesz sprawdzić czego się czepia?

Występuje, gdy w /etc/mysql/clusters.conf mam:

mysqld.conf=/var/lib/mysql
/var/lib/mysql/mysqld.conf=/var/lib/mysql

Pierwsze przychodzi z pakietem, drugie dodała konwersja.

Problem wynika z tego, że dwa razy jest wpisany ten sam $clusterdir,
przez co zmienna $config funkcji mysqlgetconfig() przyjmuje wartość:

"/var/lib/mysql/mysqld.conf
mysqld.conf"

i druga linijka przeszkadza w test -f.
Najprostszą poprawkę commitowałem: nie wybiera żadnego z zadanych plików
konfiguracyjnych, a $clusterdir/mysqld.conf (nie trafia żaden test, więc
wykonuje się else - linijka 112).
Inaczej - można cały warunek objąć pętlą for operującą na wartościach z
$config, a wtedy wybrany zostanie ostatni podany plik konfiguracyjny.
Najtrudniejsze do zrobienia byłoby wybieranie pierwszego podanego
konfiga.
Jako że jednak taka sytuacja nie jest normalna, wybór pierwszego czy
ostatniego podanego mógłby być szkodliwy (ukrywać błędy). Dlatego też
proponuję w tym miejscu pozostawić fallback do $clusterdir/mysqld.conf.

-- 
GoTaR <priv0.onet.pl->gotar>
http://vfmg.sourceforge.net/




Więcej informacji o liście dyskusyjnej pld-devel-pl