From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 28 May 2005 06:57:55 +0400 From: Dmitry Surrentchick To: "sisyphus@altlinux.ru" Message-ID: <20050528025755.GA5946@server.conceptio> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [sisyphus] MySQL =?koi8-r?b?08nNzMnOyyDOwSDCxCAo0MHU3ik=?= X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 May 2005 02:54:24 -0000 Archived-At: List-Archive: Здравствуйте. (MySQL-server-4.0.24, alt) Понадобилось вынести одну большую бд на отдельный винт. Т.е. надо сделать: /var/lib/mysql/db |-db1 |-db2 |-~db3 (это симлинк вообще на др. винт) В доках говорится, что по умолчанию такой поддержки нету... В смысле, олписана такая ситуация в документации на MySQL, в разделе 7.6.1.1 Using Symbolic Links for Databases on Unix. Объясняется также, почему именно (чтоб в одну и ту же залинкованную базу нельзя было писать одновременно, вроде, так я понял). В общем, надо пересобрать её с правками в коде. Говорится также, что и как менять: === file to modify depends on your version of MySQL. For MySQL 4.0 and up, look for the following statement in the `mysys/my_symlink.c' if (!(MyFlags & MY_RESOLVE_LINK) || (!lstat(filename,&stat_buff) && S_ISLNK(stat_buff.st_mode))) Before MySQL 4.0, look for this statement in the `mysys/mf_format.c' if (flag & 32 || (!lstat(to,&stat_buff) && S_ISLNK(stat_buff.st_mode))) Change the statement to this: if (1) === Подскажите, я не понял, с предметом не очень знаком, - менять, что на что? Просто вместо if (бла-бла))) написать if (1)? Т.е. просто убрать эти две строчки (для >4.0) м вместо них написать if (1)? Я сделал патч. Вот он (diff -u ...): ######################################################################## --- mysys/my_symlink.c.orig 2005-05-28 04:09:29 +0400 +++ mysys/my_symlink.c 2005-05-28 04:11:14 +0400 @@ -113,8 +113,7 @@ struct stat stat_buff; DBUG_ENTER("my_realpath"); - if (!(MyFlags & MY_RESOLVE_LINK) || - (!lstat(filename,&stat_buff) && S_ISLNK(stat_buff.st_mode))) + if (1) { char *ptr; DBUG_PRINT("info",("executing realpath")); ######################################################################## Т.е., вот последовательно, что делал: 1) Положил этот патч в ~/RPM/SOURCES 1) Прописал его в спеке: а) в строке 40 добавил: Patch11: mysql-4.0.24-alt-symlink_db.patch б) в строке 286 добавил: %patch11 2) Пересобрал, поставил........... Не работает. Базу под симлинком не видит. Помогите. P.S. Может, я вообще из самой документации чего-то не понял?.. Да, и насчёт чрута. Симлинк я делал и база на базу в datadir каталоге. Тоже не видит. */_С yважением, Dmitry_/*