Я не могу запустить свой сервер MySQL на Kubuntu 20.04. Я много раз пытался установить и удалить установленные пакеты. Я следил за этой темой: Не могу заставить MYSQL8 работать на Ubuntu 20.04 .
Следуя предложению ExploitFate , у меня есть некоторые улучшения, но когда я запускаю:
sudo dpkg-reconfigure mysql-server-8.0
Я получаю следующий результат:
mysqld will log errors to /var/log/mysql/error.log
2021-05-14T20:21:24.150954Z 0 [ERROR] [MY-010946] [Server] Failed to start mysqld daemon. Check mysqld error log. Warning: Unable to start the server.
Если я попробую sudo systemctl status mysql. service
вывод:
mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2021-05-14 22:14:18 CEST; 1h 23min ago Main PID: 47596 (code=exited, status=1/FAILURE)
Status: "Data Dictionary upgrade from MySQL 5.7 in progress"
may 14 22:14:16 hades systemd[1]: Starting MySQL Community Server... may 14 22:14:18 hades systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE may 14 22:14:18 hades systemd[1]: mysql.service: Failed with result 'exit-code'. may 14 22:14:18 hades systemd[1]: Stopped MySQL Community Server.
Вот файл журнала ошибок mysql
:
2021-05-14T21:16:55.848036Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2021-05-14T21:16:55.849055Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.25-0ubuntu0.20.04.1) starting as process 48092
2021-05-14T21:16:55.860384Z 1 [System] [MY-011012] [Server]
Starting upgrade of data directory.
2021-05-14T21:16:55.860441Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-05-14T21:16:57.255989Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-05-14T21:16:57.259487Z 1 [ERROR] [MY-010781] [Server] Found ./mysql/index_stats.frm file in mysql schema. DD will create .ibd file with same name. Please rename table and start upgrade process again.
2021-05-14T21:16:57.259883Z 1 [ERROR] [MY-010336] [Server] Found .frm file with same name as one of the Dictionary Tables.
2021-05-14T21:16:57.260611Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2021-05-14T21:16:57.261061Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2021-05-14T21:16:57.262020Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-05-14T21:16:58.011540Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.25-0ubuntu0.20.04.1) (Ubuntu).
2021-05-14T21:16:58.016177Z 0 [ERROR] [MY-010065] [Server] Failed to shutdown components infrastructure.
Очевидно mysql
присутствует, но я не закончил его настройку .
У меня больше нет идей, и я думаю, что зашел в тупик. Есть идеи, которые могут мне помочь?
Это пароль.
У меня была такая же проблема, и я решил ее вчера, также на Kubuntu 20.04 и MySQL-Server 8.0.
Поскольку вы уже попробовали несколько вещей, у вас есть некоторые ошибки в системе, их нужно исправить в первую очередь.
Теперь вам нужно полностью удалить сервер MySQL.
su root
systemctl stop mysql.service
systemctl disable mysql.service
systemctl stop avahi-daemon.service
systemctl stop avahi-daemon.socket
apt autoclean
apt clean
Если установлено, также удалите php и phpmyadmin . Если нет, пропустите этот шаг.
apt remove --purge phpmyadmin
apt remove --purge php-*
Следите за журналом удаления, ищите предупреждения и сообщения об ошибках.
dpkg: предупреждение: при удалении php7.4-cli каталог '/etc/php/7.4' не пуст, поэтому не удаляется
rm -rf /etc/php/7.4
Продолжить
apt remove --purge mysql*
dpkg --configure -a
apt autoremove
rm -rf /etc/mysql /var/opt/mssql /usr/bin/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
Эта команда удалит пользователя MySQL и все связанных файлов, поэтому диск будет полностью просканирован на предмет пользовательских данных MySQL, и в зависимости от скорости, размера и занятости это может занять больше времени. Размонтируйте все остальные диски.
deluser --remove-all-files --force mysql
На этом этапе вы получите предупреждающее сообщение.
Удаление файлов ...
Удаление пользователя mysql ...
Предупреждение: группа mysql больше не имеет участников.
Готово.
Проверьте, удалена ли группа mysql .
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
Должно быть без результата, пусто.
Теперь перезагрузите систему.
reboot
Затем переустановите MySql-Server.
su root
apt update --fix-missing && apt --fix-broken install && apt full-upgrade && apt autoremove
apt install php
apt install php-mysql
apt install mysql-server
mysql_secure_installation
Используйте пароль, содержащий не менее 8 символов, из которых хотя бы один должен быть прописной буквой, один строчной буквой, один цифрой и один специальный символ.
Не все специальные символы разрешены, но сообщение об ошибке отсутствует, если вы введете неправильный символ, и в этом проблема.
Используйте эти: ()
Пример пароля: H4CkM31Fy () Uc4n
полиция проверки пароля
Сброс пароля root через интерфейс командной строки в MySQL-Server
Исправление сообщений об ошибках, связанных с паролем root.
Откройте интерфейс командной строки и войдите в систему как root.
su root
Теперь должна быть возможность входить в MySQL через CLI без пароля.
mysql -u root
Введите этот синтаксис
SELECT user,host,plugin FROM mysql.user WHERE user='root';
+ ------ + ----------- + --------------------- - + | Пользователь | Хост | плагин | + ------ + ----------- + ----------------------- + | корень | % | auth_socket | + ------ + ----------- + ----------------------- +
Результат должен выглядеть так.
Если root имеет права подстановочного знака % , измените их на localhost . Если root - localhost , пропустите этот шаг.
UPDATE mysql.user SET Host='localhost' WHERE User='root' AND Host='%';
Измените плагин для root на caching_sha2_password
UPDATE mysql.user SET Plugin='caching_sha2_password' WHERE User='root' AND Host='localhost';
Теперь сбросьте настройки.
FLUSH PRIVILEGES;
В конце должно получиться так.
SELECT user,host,plugin FROM mysql.user WHERE user='root';
+ ------ + ----------- + ----------------------- + {{1 }} | Пользователь | Хост | плагин | + ------ + ----------- + ----------------------- + | корень | localhost | caching_sha2_password | + ------ + ----------- + ----------------------- +
Наконец перезапустите сервер MySQL.
systemctl stop mysql.service
systemctl disable mysql.service
systemctl enable mysql.service
systemctl start mysql.service
Иногда это не работает, и вам необходимо перезагрузить компьютер.
Проверьте, правильно ли работает KWalletManager .
systemctl status
Состояние: пониженный Заданий: 0 в очереди Отказано: 3 единицы С: Пт 2021-05-14 16:48:54 CEST; 19ч назад CGroup: / ├─user.slice │ └─user-1000.slice │ (скрыто)… │ │ ├─pulseaudio.service │ │ │ └─994 / usr / bin / pulseaudio --daemonize = no --log-target = journal │ │ ├─init.scope │ │ │ ├ ─988 / lib / systemd / systemd --user │ │ │ └─989 (sd-pam) │ │ ├─obex.service │ │ │ └─1337 / usr / lib / bluetooth / obexd │ │ └─dbus.service │ │ ├─1011 / usr / bin / dbus-daemon --session --address = systemd: --nofork --nopidfile --systemd-activation --sys> │ │ ├─1109 / usr / bin / kglobalaccel5 │ │ ├─1114 / usr / libexec / dconf-service │ │ ├─1163 / usr / lib / x86_64-linux-gnu / libexec / kactivitymanagerd │ │ ├─1210 / usr / lib / x86_64-linux-gnu / libexec / kf5 / kscreen_backend_launcher │ │ ├─1431 / usr / bin / krunner │ │ ├─1452 / usr / lib / x86_64-linux-gnu / libexec / baloorunner │ │ └─1560 / usr / bin / kwalletd5
systemctl status | grep kwalletd5
│ │ └─1560 / usr / bin / kwalletd5 │ └─24924 grep --color = auto kwalletd5
Я предоставляю вам скриншот. Вы можете видеть, что когда я выполняю mysql_secure_installation
, я получаю сообщение об ошибке, так как я не могу подключиться к MySQL.
Если я выполню mysql -u root -p
и введу пароль root, оболочка ответит мне:
Введите пароль:
ОШИБКА 2002 (HY000): Может 'не подключаюсь к локальному серверу MySQL через сокет' /var/run/mysqld/mysqld.sock '(2)
После перезагрузки компьютера я не могу войти в mysql, но у меня такой статус:
javier @ hades: ~ $ sudo systemctl status mysql.service ● mysql.service - Сервер сообщества MySQL Загружено: загружено (/lib/systemd/system/mysql.service; отключено; поставщик preset: enable> Active: inactive (dead)
Затем я пытаюсь:
javier @ hades: ~ $ sudo systemctl start mysql.service Задание для mysql.service не удалось, потому что процесс управления завершен с кодом ошибки. Подробнее см. "systemctl status mysql.service" и "journalctl -xe". javier @ hades: ~ $ sudo systemctl status mysql.service {{1} } ● mysql.service - Сервер сообщества MySQL Загружен: загружен (/lib/systemd/system/mysql.service; отключен; предустановка поставщика: включить> Активно: сбой (Результат: exit-co de) с сб 2021-05-15 04:33:40 CEST; 16 сек. Назад Процесс: 2637 ExecStartPre = / usr / share / mysql / mysql-systemd-start pre (code = exited, s>
15 мая 04:33:40 hades systemd 1 : mysql.service: задание перезапуска по расписанию, счетчик перезапуска> 15 мая, 04:33:40 hades systemd 1 : Сервер сообщества MySQL остановлен. 15 мая, 04:33 : 40 hades systemd 1 : mysql.service: запрос запуска повторяется слишком быстро. 15 мая, 04:33:40 hades systemd 1 : mysql.service: Ошибка при результат 'exit-code'. 15 мая 04:33:40 hades systemd 1 : Не удалось запустить сервер сообщества MySQL.
Я снова перезагрузил свой компьютер и проверяю, работает ли KWallet. работающий.Я думаю, это работает, как вы видите.
javier@hades:~$ systemctl status | grep kwalletd5
│ ├─1808 /usr/bin/kwalletd5 --pam-login 7 3
│ └─2554 grep --color=auto kwalletd5
Я также добавил первые строки моего статуса:
hades
State: running
Jobs: 0 queued
Failed: 0 units
Since: Sat 2021-05-15 12:42:38 CEST; 1h 5min ago
CGroup: /
├─413 bpfilter_umh
├─user.slice
│ └─user-1000.slice
│ ├─user@1000.service
│ │ ├─pulseaudio.service
│ │ │ └─1803 /usr/bin/pulseaudio --daemonize=no --log-target=journal
│ │ ├─init.scope
│ │ │ ├─1789 /lib/systemd/systemd --user
│ │ │ └─1790 (sd-pam)
│ │ ├─obex.service
│ │ │ └─2113 /usr/lib/bluetooth/obexd
│ │ └─dbus.service
│ │ ├─1805 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfil>
│ │ ├─1903 /usr/libexec/dconf-service
│ │ ├─1926 /usr/bin/kglobalaccel5
│ │ ├─1935 /usr/lib/x86_64-linux-gnu/libexec/kactivitymanagerd
│ │ ├─2039 /usr/lib/x86_64-linux-gnu/libexec/kf5/kscreen_backend_launcher
│ │ └─2166 /usr/lib/x86_64-linux-gnu/libexec/baloorunner
│ └─session-6.scope
│ ├─1776 /usr/lib/x86_64-linux-gnu/sddm/sddm-helper --socket /tmp/sddm-auth26e7f>
│ ├─1808 /usr/bin/kwalletd5 --pam-login 7 3
│ ├─1809 /usr/bin/startplasma-x11
│ ├─1855 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/startplasma-x11
│ ├─1876 /usr/lib/x86_64-linux-gnu/libexec/kf5/start_kdeinit --kded +kcminit_sta>
│ ├─1877 kdeinit5: Running...
│ ├─1883 /usr/lib/x86_64-linux-gnu/libexec/kf5/klauncher --fd=9
│ ├─1886 kded5
Я удалил KWalletManager и установил его снова. Я представляю вам первые строчки моего статуса systemctl.
javier@hades:~$ systemctl status
● hades
State: degraded
Jobs: 0 queued
Failed: 1 units
Since: Sat 2021-05-15 12:42:38 CEST; 1h 34min ago
CGroup: /
├─413 bpfilter_umh
├─user.slice
│ └─user-1000.slice
│ ├─user@1000.service
│ │ ├─pulseaudio.service
│ │ │ └─1803 /usr/bin/pulseaudio --daemonize=no --log-target=journal
│ │ ├─init.scope
│ │ │ ├─1789 /lib/systemd/systemd --user
│ │ │ └─1790 (sd-pam)
│ │ ├─obex.service
│ │ │ └─2113 /usr/lib/bluetooth/obexd
│ │ └─dbus.service
│ │ ├─1805 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfil>
│ │ ├─1903 /usr/libexec/dconf-service
│ │ ├─1926 /usr/bin/kglobalaccel5
│ │ ├─1935 /usr/lib/x86_64-linux-gnu/libexec/kactivitymanagerd
│ │ ├─2039 /usr/lib/x86_64-linux-gnu/libexec/kf5/kscreen_backend_launcher
│ │ └─2166 /usr/lib/x86_64-linux-gnu/libexec/baloorunner
│ └─session-6.scope
│ ├─1776 /usr/lib/x86_64-linux-gnu/sddm/sddm-helper --socket /tmp/sddm-auth26e7f>
│ ├─1808 /usr/bin/kwalletd5 --pam-login 7 3
│ ├─1809 /usr/bin/startplasma-x11
│ ├─1855 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/startplasma-x11
│ ├─1876 /usr/lib/x86_64-linux-gnu/libexec/kf5/start_kdeinit --kded +kcminit_sta>
│ ├─1877 kdeinit5: Running...
│ ├─1883 /usr/lib/x86_64-linux-gnu/libexec/kf5/klauncher --fd=9
│ ├─1886 kded5
│ ├─1904 /usr/bin/kaccess
│ ├─1909 /usr/bin/xsettingsd
│ ├─1918 /usr/bin/plasma_session
│ ├─1933 /usr/bin/ksmserver
│ ├─1943 /usr/bin/kwin_x11 -session 10100109dae2000148598483700000013020002_1621>
│ ├─1945 /usr/bin/baloo_file
│ ├─1947 /usr/bin/plasmashell
│ ├─1949 /usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1
│ ├─1958 /usr/bin/xembedsniproxy
│ ├─1961 /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
│ ├─1966 /usr/bin/gmenudbusmenuproxy
│ ├─1985 /usr/lib/x86_64-linux-gnu/libexec/DiscoverNotifier
│ ├─2037 /usr/libexec/at-spi-bus-launcher --launch-immediately
│ ├─2045 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessib>
│ ├─2053 /usr/libexec/geoclue-2.0/demos/agent
│ ├─2062 /usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil
│ ├─2133 /usr/bin/ksysguardd
│ ├─2508 file.so [kdeinit5] file local:/run/user/1000/klauncherOupbUr.1.slave-so>
│ ├─3167 /usr/bin/dolphin
│ ├─3181 file.so [kdeinit5] file local:/run/user/1000/klauncherOupbUr.1.slave-so>
│ ├─3277 /usr/bin/kate -b /home/javier/Programas/Amarok/amarok-2.9.71/amarok-2.9>
│ ├─3293 /usr/lib/firefox/firefox
│ ├─3373 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLe>
│ ├─3429 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLe>
│ ├─3463 /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLe>
│ ├─3513 /usr/bin/plasma-browser-integration-host /usr/lib/mozilla/native-messag>
│ ├─3567 /usr/lib/firefox/firefox -contentproc -parentBuildID 20210504152106 -pr>
│ ├─3720 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLe>
│ ├─3823 /usr/bin/konsole
│ ├─3830 /bin/bash
│ ├─3901 /usr/lib/firefox/firefox -contentproc -childID 8 -isForBrowser -prefsLe>
│ ├─4549 systemctl status
│ └─4550 pager
├─init.scope
│ └─1 /sbin/init splash