Kubuntu 20.04 中 mysql-server-8.0 安装不完整

Kubuntu 20.04 中 mysql-server-8.0 安装不完整

我无法在 Kubuntu 20.04 上启动 MySQL 服务器。我尝试过多次安装和删除已安装的软件包。我关注了以下帖子:无法让 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存在,但我还没有完成它的配置。

我没有更多的想法,我想我陷入了僵局。有什么想法可以帮助我吗?

答案1

这是密码。

我遇到了同样的问题,昨天在 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

如果已安装,也删除phpphpmyadmin。如果不是请跳过此步骤。

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




密码验证警察

在此处输入图片描述

答案2

我给你一个截图。你可以看到,当我执行时mysql_secure_installation我得到了一个错误,因为我无法连接到 MySQL。

在此处输入图片描述

如果我执行mysql -u root -p并输入 root 密码,shell 会回答我:

输入密码:
错误 2002 (HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)

重新启动计算机后,我无法登录mysql,但我有以下状态:

javier@hades:~$ sudo systemctl status mysql.service ● mysql.service - MySQL 社区服务器 已加载:已加载(/lib/systemd/system/mysql.service;已禁用;供应商预设:启用> 活动:未活动(已停止)

然后我尝试:

javier@hades:~$ sudo systemctl start mysql.service mysql.service 作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status mysql.service”和“journalctl -xe”。javier@hades:~$ sudo systemctl status mysql.service ● mysql.service - MySQL Community Server 已加载:已加载(/lib/systemd/system/mysql.service;已禁用;供应商预设:启用> 活动:失败(结果:退出代码)自 2021-05-15 星期六 04:33:40 CEST;16 秒前 进程:2637 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre(代码=exited,s>

5月15日 04:33:40 hades systemd1:mysql.service:计划重启作业,重启计数器> 5 月 15 日 04:33:40 hades systemd1:已停止 MySQL 社区服务器。5 月 15 日 04:33:40 hades systemd1:mysql.service:启动请求重复太快。5 月 15 日 04:33:40 hades systemd1:mysql.service:失败,结果为“退出代码”。5 月 15 日 04:33:40 hades systemd1:无法启动 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 
       │   ├─[email protected] 
       │   │ ├─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 
       │   ├─[email protected] 
       │   │ ├─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

答案3

通过 MySQL-Server 中的 CLI 重置 root 密码

修复与 root 密码相关的错误消息。

打开 CLI 并以 root 身份登录。

su root

现在应该可以通过 CLI 无需密码登录 MySQL。

mysql -u root

输入此语法

SELECT user,host,plugin FROM mysql.user WHERE user='root';
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root |     %     |      auth_socket      |
+------+-----------+-----------------------+

结果应该看起来像这样。
如果根有通配符权限,将其更改为本地主机. 如果 root 是本地主机, 跳过此步骤。

UPDATE mysql.user SET Host='localhost' WHERE User='root' AND Host='%';

将 root 的插件更改为缓存_sha2_密码

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';
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+

最后重新启动 MySQL 服务器。

systemctl stop mysql.service
systemctl disable mysql.service
systemctl enable mysql.service
systemctl start mysql.service

有时它不起作用,您必须重新启动计算机。


检查钱包管理器工作正常。

systemctl status
State: degraded
 Jobs: 0 queued    Failed: 3 units
Since: Fri 2021-05-14 16:48:54 CEST; 19h ago    CGroup: /
       ├─user.slice 
       │ └─user-1000.slice 
       │   ├─[email protected]
       │   │ ├─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

相关内容