Я использую Ubuntu 16.04 LTS с сервером MySQL для MediaWiki 1.30.0 вместе с Apache2 и PHP7.0. Установка прошла успешно, мне удалось все запустить. Затем я начинаю устанавливать расширения для MediaWiki. Все нормально, пока я не установлю расширение Virtual Editor. Это требует, чтобы у меня были установлены и Parsoid, и RESTBase. Поэтому я устанавливаю их вместе с Virtual Editor. Затем я проверяю свою вики и вижу это сообщение (имя базы данных вики - «библия»):
Сожалею! Этот сайт испытывает технические трудности.
Попробуйте подождать несколько минут и перезагрузить.
(Невозможно получить доступ к базе данных: неизвестная база данных 'bible' (localhost))
Обратная трассировка:
# 0 /var/www/html/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1028): Wikimedia \ Rdbms \ Database-> reportConnectionError ('Неизвестные базы данных ...')
# 1 /var/www/html/w/includes/libs/rdbms/loadbalancer/LoadBalancer.php(670): Wikimedia \ Rdbms \ LoadBalancer-> reportConnectionError ()
# 2 /var/www/html/w/includes/GlobalFunctions.php(2858): Wikimedia \ Rdbms \ LoadBalancer-> getConnection (0, массив, ложь)
# 3 /var/www/html/w/includes/user/User.php(493): wfGetDB (-1)
# 4 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(892): Пользователь -> {closure} (false, 3600, Array, NULL)
# 5 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(1012): WANObjectCache -> {closure} (ложь, 3600, массив, NULL)
# 6 /var/www/html/w/includes/libs/objectcache/WANObjectCache.php(897): WANObjectCache-> doGetWithSetCallback ('global: user: id: ...', 3600, Object (Closure), Array, НОЛЬ)
# 7 /var/www/html/w/includes/user/User.php(520): WANObjectCache-> getWithSetCallback ('global: user: id: ...', 3600, Object (Closure), Array)
# 8 /var/www/html/w/includes/user/User.php(441): Пользователь-> loadFromCache ()
# 9 /var/www/html/w/includes/user/User.php(405): User-> loadFromId (0)
# 10 /var/www/html/w/includes/session/UserInfo.php(88): Пользователь-> load ()
# 11 /var/www/html/w/includes/session/CookieSessionProvider.php(119): MediaWiki \ Session \ UserInfo :: newFromId ('1')
# 12 /var/www/html/w/includes/session/SessionManager.php(487): MediaWiki \ Session \ CookieSessionProvider-> provideSessionInfo (Объект (WebRequest))
# 13 /var/www/html/w/includes/session/SessionManager.php(190): MediaWiki \ Session \ SessionManager-> getSessionInfoForRequest (Объект (WebRequest))
# 14 /var/www/html/w/includes/WebRequest.php(735): MediaWiki \ Session \ SessionManager-> getSessionForRequest (Object (WebRequest))
# 15 /var/www/html/w/includes/session/SessionManager.php(129): WebRequest-> getSession ()
# 16 /var/www/html/w/includes/Setup.php(762): MediaWiki \ Session \ SessionManager :: getGlobalSession ()
# 17 /var/www/html/w/includes/WebStart.php(114): require_once ('/ var / www / html / w ...')
# 18 /var/www/html/w/index.php(40): require ('/ var / www / html / w ...')
# 19 {main}
Я проверил журналы ошибок в MySQL, и в сообщении об ошибке говорилось, что база данных пыталась получить доступ без пароля. Я перезапустил свой компьютер и перезапустил Apache, Parsoid, RESTBase и MySQL. Но мне не удалось перезапустить MySQL. Журнал ошибок, набрав команду journalctl -xe
и увидел, что он не запускается, потому что не может писать в /var/lib/mysql/
. Я пошел в StackExchange, чтобы узнать, могу ли я найти решение, и в одном из ответов было сказано использовать команду mysql -u root -p
. Я сделал и ввел пароль, и он дал такую ошибку:
ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
Я также проверяю его статус, набрав sudo mysqladmin status
который сказал:
mysqladmin: подключиться к серверу на «localhost» не удалось ошибка: «Не удается подключиться к локальному серверу MySQL через сокет» /var/run/mysqld/mysqld.sock »(2)« Убедитесь, что mysqld запущен и что сокет: » /var/run/mysqld/mysqld.sock 'существует!
Я хотел убедиться, что он существует, но при просмотре местоположения сокета я обнаружил, что его там нет. Я увидел ответ об отсутствующем сокете MySQL, в котором говорилось, что нужно использовать touch
команда для создания сокета и другого файла. Я сделал это, и у меня остались те же проблемы. Я вернулся в каталог и обнаружил, что два файла отсутствуют. Я создал их снова с помощью touch
команда и наблюдала за папкой, чтобы увидеть, что происходит. Примерно через полминуты папка кажется удаленной и воссозданной. Меня выгнали из папки в родительский каталог, и когда я вернулся, файлы исчезли.
Кто-нибудь знает, почему это происходит, или, по крайней мере, как я могу это исправить и восстановить и запустить MySQL?