2.4. Післяналаштування та тестування 2.4.1. Проблеми під час запуску mysql_install_db
Скрипт mysql_install_db призначений лише для створення нових таблиць привілеїв MySQL. Він не впливає на жодні інші дані! А якщо таблиці привілеїв MySQL вже встановлені, цей скрипт нічого не робитиме!
Для того, щоб створити таблиці привілеїв заново, необхідно зупинити сервер mysqld , якщо він працює, а потім виконати щось на зразок:
У цьому розділі перелічені проблеми, з якими можна зіткнутися під час запуску mysql_install_db :
mysql_install_db не встановлює таблиці привілеїв
Може виявитися, що mysql_install_db не може встановити таблиці привілеїв і закінчує свою роботу після виведення наступних повідомлень:
У такому разі необхідно дуже ретельно вивчити системний журнал! Цей журнал повинен знаходитись у каталозі XXXXXX , зазначеному в цьому повідомленні про помилку. У ньому міститься інформація про те, чому не запустився mysqld. Якщо вам не вдалося розібратися в тому, що сталося, під час надсилання звіту про помилку увімкніть у нього журнал, використовуючи mysqlbug ! Див. розділ See Розділ 1.8.1.3, «Як надсилати звіти про помилки або проблеми».
Вже існує працюючий демон mysqld
В такому випадку вам взагалі не слід запускати mysql_install_db. Скрипт mysql_install_db повинен запускатись лише одного разу при встановленні MySQL вперше.
При працюючому демона mysqld установка другого демона не працює
Це може статися, коли вже існує встановлений сервер MySQL, але ви хочете зробити нову інсталяцію в іншому місці (наприклад, для тестування або, можливо, вам просто потрібно запустити дві інсталяції в той самий час). Взагалі кажучи, така проблема, яка виникає при спробі запустити другий сервер, полягає в тому, що другийсервер намагається використовувати той самий сокет і порт, що й старий. У цьому випадку ви можете отримати таке повідомлення про помилку: Can't start server: Bind on TCP/IP port: Address already in use або Can't start server: Bind on unix socket. . Розділ 4.1.3, «Встановлення декількох серверів на один комп'ютер».
Немає доступу для запису в /tmp
Якщо у вас немає доступу для створення файлу сокету в прийнятому за умовчанням місці (в /tmp ) або дозволу створювати тимчасові файли в каталозі /tmp , то ви отримаєте помилку під час запуску mysql_install_db або запуску або використання mysqld . Необхідно вказати інший каталог для сокету та тимчасових файлів таким чином:
See Розділ A.4.5, "Як захистити або змінити сокет-файл MySQL /tmp/mysql.sock". Шлях some_tmp_dir повинен вказувати на деякий каталог, для якого ви маєте доступ для запису. See Додаток F,Змінні оточення. Після цього у вас має з'явитися можливість запустити mysql_install_db та розпочати роботу сервера за допомогою наступних команд:
Негайна аварійна відмова mysqld
Якщо ви працюєте на версії RedHat 5.0 з версією glibc старішою, ніж 2.0.7-5, слід подбати про те, щоб встановити всі патчі для glibc ! В архівах розсилки MySQL є велика кількість листів про це. Посилання на архіви листів доступні в онлайновому режимі http://lists.mysql.com/. Зверніться також до розділу See Розділ 2.6.1, «Примітки до Linux (Всі версії Linux)». Можна також запустити mysqld вручну, використовуючи опцію --skip-grant-tables , і самостійно додати інформацію про привілеї за допомогою mysql :
З mysql у ручному режимі виконайте команди SQL у mysql_install_db. Переконайтеся, що ви запустили mysqladmin flush-privileges або mysqladminreload щоб сервер перевантажив таблиці привілеїв.
| назад | Початок Глави | Початок Розділу | Вперед |
| Попер. Глава | Слід. Глава | |
| Розділ 1. Загальна інформація | Початок Книги | Глава 3. Навчальний посібник з MySQL |
Якщо Ви не знайшли, що шукали, то рекомендую скористатися пошуком по сайту: