AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1250237
Accepted
Buno
Buno
Asked: 2020-06-15 05:32:58 +0800 CST2020-06-15 05:32:58 +0800 CST 2020-06-15 05:32:58 +0800 CST

Mysql 不会安装在 Ubuntu Server 20.04 上

  • 772

我查看了在 AskUbuntu 或外部可以找到的所有类似帖子,但找不到任何可以解决我的问题的帖子。我只是想在我的服务器上安装 mysql,但似乎无法正常工作。

到目前为止,我已经尝试过:

  • 删除所有 mysql 包,,,/var/lib/mysql清理/etc/mysqlapt 缓存并重新安装(多次)
  • apparmor在运行安装之前禁用服务
  • 运行mysqld --initialize(无效果)

这是尝试开始安装时的输出:

ubuntu@central-2:/etc$ sudo apt install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libevent-core-2.1-7 libmecab2 libnuma1 mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0
Suggested packages:
  tinyca
Recommended packages:
  libhtml-template-perl mecab-ipadic-utf8
The following NEW packages will be installed:
  libevent-core-2.1-7 libmecab2 libnuma1 mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0 mysql-server-core-8.0
0 upgraded, 9 newly installed, 0 to remove and 8 not upgraded.
Need to get 0 B/23.0 MB of archives.
After this operation, 190 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 96065 files and directories currently installed.)
Preparing to unpack .../0-mysql-common_5.8+1.0.5ubuntu2_all.deb ...
Unpacking mysql-common (5.8+1.0.5ubuntu2) ...
Selecting previously unselected package mysql-client-core-8.0.
Preparing to unpack .../1-mysql-client-core-8.0_8.0.20-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-client-core-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Selecting previously unselected package mysql-client-8.0.
Preparing to unpack .../2-mysql-client-8.0_8.0.20-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-client-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Selecting previously unselected package libevent-core-2.1-7:amd64.
Preparing to unpack .../3-libevent-core-2.1-7_2.1.11-stable-1_amd64.deb ...
Unpacking libevent-core-2.1-7:amd64 (2.1.11-stable-1) ...
Selecting previously unselected package libmecab2:amd64.
Preparing to unpack .../4-libmecab2_0.996-10build1_amd64.deb ...
Unpacking libmecab2:amd64 (0.996-10build1) ...
Selecting previously unselected package libnuma1:amd64.
Preparing to unpack .../5-libnuma1_2.0.12-1_amd64.deb ...
Unpacking libnuma1:amd64 (2.0.12-1) ...
Selecting previously unselected package mysql-server-core-8.0.
Preparing to unpack .../6-mysql-server-core-8.0_8.0.20-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-server-core-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Setting up mysql-common (5.8+1.0.5ubuntu2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-8.0.
(Reading database ... 96281 files and directories currently installed.)
Preparing to unpack .../mysql-server-8.0_8.0.20-0ubuntu0.20.04.1_amd64.deb ...
Unpacking mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_8.0.20-0ubuntu0.20.04.1_all.deb ...
Unpacking mysql-server (8.0.20-0ubuntu0.20.04.1) ...
Setting up libmecab2:amd64 (0.996-10build1) ...
Setting up mysql-client-core-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Setting up libevent-core-2.1-7:amd64 (2.1.11-stable-1) ...
Setting up libnuma1:amd64 (2.0.12-1) ...
Setting up mysql-client-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Setting up mysql-server-core-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
Specified filename /var/lib/mysql/ibdata1 does not exist.
mysqld will log errors to /var/log/mysql/error.log
2020-06-14T13:15:44.220560Z 0 [ERROR] [MY-010946] [Server] Failed to start mysqld daemon. Check mysqld error log.
Warning: Unable to start the server.
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Sun 2020-06-14 13:15:46 UTC; 14ms ago
    Process: 38879 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=1/FAILURE)
dpkg: error processing package mysql-server-8.0 (--configure):
 installed mysql-server-8.0 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-8.0; however:
  Package mysql-server-8.0 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for systemd (245.4-4ubuntu3.1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Errors were encountered while processing:
 mysql-server-8.0
 mysql-server
[ Rootkit Hunter version 1.4.6 ]
File updated: searched for 179 files, found 137
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)

mysql错误日志包含以下内容:

ubuntu@central-2:/etc$ cat /var/log/mysql/error.log
2020-06-14T13:15:43.844787Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.20-0ubuntu0.20.04.1) initializing of server in progress as process 38755
2020-06-14T13:15:43.858140Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-06-14T13:15:43.864981Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create temporary file; errno: 13
2020-06-14T13:15:43.865050Z 1 [ERROR] [MY-012929] [InnoDB] InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again.
2020-06-14T13:15:43.865252Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-06-14T13:15:43.865309Z 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.
2020-06-14T13:15:43.865395Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-06-14T13:15:43.865816Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20-0ubuntu0.20.04.1)  (Ubuntu).
2020-06-14T13:15:44.192647Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.20-0ubuntu0.20.04.1) starting as process 38762
2020-06-14T13:15:44.220277Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2020-06-14T13:15:44.220414Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-06-14T13:15:44.220492Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-06-14T13:15:44.227182Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20-0ubuntu0.20.04.1)  (Ubuntu).

mysqld服务状态如下:

ubuntu@central-2:/etc$ systemctl status mysql.service
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2020-06-14 13:15:48 UTC; 7min ago
    Process: 39031 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=1/FAILURE)

Jun 14 13:15:48 central-2 systemd[1]: mysql.service: Scheduled restart job, restart counter is at 7.
Jun 14 13:15:48 central-2 systemd[1]: Stopped MySQL Community Server.
Jun 14 13:15:48 central-2 systemd[1]: mysql.service: Start request repeated too quickly.
Jun 14 13:15:48 central-2 systemd[1]: mysql.service: Failed with result 'exit-code'.
Jun 14 13:15:48 central-2 systemd[1]: Failed to start MySQL Community Server.

journalctl -xe在 mysql 尝试启动时包含以下输出:

Jun 14 13:15:45 central-2 systemd[1]: Starting MySQL Community Server...
-- Subject: A start job for unit mysql.service has begun execution
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit mysql.service has begun execution.
--
-- The job identifier is 2681.
Jun 14 13:15:46 central-2 mysql-systemd-start[38879]: MySQL system database not found in /var/lib/mysql. Please run mysqld --initialize.
Jun 14 13:15:46 central-2 systemd[1]: mysql.service: Control process exited, code=exited, status=1/FAILURE
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStartPre= process belonging to unit mysql.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 1.
Jun 14 13:15:46 central-2 systemd[1]: mysql.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit mysql.service has entered the 'failed' state with result 'exit-code'.
Jun 14 13:15:46 central-2 systemd[1]: Failed to start MySQL Community Server.
-- Subject: A start job for unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit mysql.service has finished with a failure.
--
-- The job identifier is 2681 and the job result is failed.
Jun 14 13:15:46 central-2 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysql comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
Jun 14 13:15:46 central-2 audit: EXECVE argc=5 a0="systemctl" a1="status" a2="--full" a3="--no-pager" a4="mysql.service"
Jun 14 13:15:46 central-2 systemd[1]: mysql.service: Scheduled restart job, restart counter is at 1.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit mysql.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jun 14 13:15:46 central-2 systemd[1]: Stopped MySQL Community Server.
-- Subject: A stop job for unit mysql.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit mysql.service has finished.
--
-- The job identifier is 2785 and the job result is done.
Jun 14 13:15:46 central-2 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysql comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 14 13:15:46 central-2 audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mysql comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
dpkg mysql
  • 4 4 个回答
  • 6205 Views

4 个回答

  • Voted
  1. Best Answer
    EchoMike444
    2020-06-15T06:46:32+08:002020-06-15T06:46:32+08:00

    根本原因是包libpam-tmpdir(由https://github.com/konstruktoid/hardening/blob/master/scripts/17_packages安装)

    这个包改变了由mktemp.

    使用libpam-tmpdir:

    root@test-ub-64:~# mktemp
    /tmp/user/0/tmp.qqRG7A24WV
    

    没有libpam-tmpdir:

    root@test-ub-64:~# mktemp
    /tmp/tmp.HIUu5D514X
    

    libpam-tmpdir使用的格式破坏了脚本/var/lib/dpkg/info/mysql-server-8.0.postinst。

    简单的方法是:

    1. 删除包
    2. 退出你的外壳
    3. 创建一个新的根外壳
    4. 检查mktemp该文件就像 /tmp/tmp.XXXXXXXXXX
    • 2
  2. Martin
    2020-10-04T08:45:38+08:002020-10-04T08:45:38+08:00

    这并不是您问题的真正答案,但是在升级我的 Ubuntu 服务器(18.04 -> 20.04)后,我遇到了 mysql-server 的类似问题。

    2020-10-03T16:07:22.635008Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.21-0ubuntu0.20.04.4)  (Ubuntu).
    2020-10-03T16:07:23.415771Z 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.
    2020-10-03T16:07:23.417551Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.21-0ubuntu0.20.04.4) starting as process 2477739
    2020-10-03T16:07:23.429381Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2020-10-03T16:07:24.553589Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2020-10-03T16:07:24.725172Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
    2020-10-03T16:07:25.048647Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
    2020-10-03T16:07:25.049185Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
    2020-10-03T16:07:25.057082Z 0 [ERROR] [MY-000067] [Server] unknown variable 'query_cache_limit=1M'.
    2020-10-03T16:07:25.057711Z 0 [ERROR] [MY-010119] [Server] Aborting
    

    和

    2020-10-03T16:22:22.002048Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.21-0ubuntu0.20.04.4)  (Ubuntu).
    2020-10-03T16:22:22.683274Z 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.
    2020-10-03T16:22:22.685313Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.21-0ubuntu0.20.04.4) starting as process 2495404
    2020-10-03T16:22:22.698694Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2020-10-03T16:22:24.126243Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2020-10-03T16:22:24.323307Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
    2020-10-03T16:22:24.593481Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
    2020-10-03T16:22:24.593803Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
    2020-10-03T16:22:24.599233Z 0 [ERROR] [MY-000067] [Server] unknown variable 'query_cache_size=16M'.
    2020-10-03T16:22:24.600082Z 0 [ERROR] [MY-010119] [Server] Aborting
    

    所以我在文件 /etc/mysql/my.cnf 这些行中有注释:

    query_cache_limit  = 1M                                                           
    query_cache_size        = 16M
    

    并重新安装 mysql-server

    sudo apt install mysql-server
    

    我希望这篇文章有帮助

    马丁

    • 0
  3. CRTLBREAK
    2021-01-25T05:01:55+08:002021-01-25T05:01:55+08:00

    许多小时的闲逛和谷歌搜索以及大量浪费的时间导致以下步骤对我有用

    user@host:~$ mysql --version
    

    结果

    mysql Ver 8.0.22-0 ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

    首先停止所有mysql实例

    sudo systemctl stop mysql.service
    

    你也可以验证

    ps ax | grep mysql
    

    如果没有 mysql 进程/服务正在运行,则完全删除 mysql

    sudo apt remove --purge mysql*
    

    我也有过度运行更新命令的强迫症

    sudo updatedb
    

    然后重新启动(不确定是否有必要,但我还是这样做了),这是关键区别....

    sudo apt install mysql-server-core-8.0 mysql-server-8.0
    

    瞧——这简直太棒了!

    然后为了重新验证这一点,并确保它不是我在使用自己的盒子的途中改变的东西,我迅速启动了一个 GCP VPS,全新安装了 20.04LTS、NGINX,然后运行上述 MYSQL 安装命令 - WayHay验证!

    所以这个故事的寓意是不要简单地安装“mysql-server” ——通用版本在 20.04LTS 上失败了。

    所以现在我们有一个mysql正在运行但无法访问root

    然后从这个链接(谢谢@Partha Sen)https://stackoverflow.com/users/7056704/partha-sen)!!

    我关注了 https://stackoverflow.com/questions/42153059/mysqld-safe-directory-var-run-mysqld-for-unix-socket-file-dont-exists

    安全模式和重置mysql root密码的方法如下

    sudo systemctl stop mysql.service
    

    只是为了确保没有 mysql 进程正在运行,我检查了

    ps ax | grep mysql
    

    如果他们都停止了

    sudo mysqld_safe --skip-grant-tables & 
    

    你应该得到以下回应

    2021-01-24T12:20:39.840380Z mysqld_safe 记录到“/var/log/mysql/error.log”。2021-01-24T12:20:39.870570Z mysqld_safe 使用 /var/lib/mysql 中的数据库启动 mysqld 守护进程

    如果是这样,那么这是个好消息 - 如果您没有得到良好的响应并且 mysql 抱怨,请在两行之间跳过以下步骤

    “用于 UNIX 套接字文件的 mysqld_safe 目录 '/var/run/mysqld' 不存在。”

    那么您需要在以下附加步骤中添加


    sudo mkdir -p /var/run/mysqld
    sudo chown mysql:mysql /var/run/mysqld
    

    现在,在 linux 提示符 user@host:~$mysql 从您的 ssh 会话到同一服务器我得到一个 sql 提示符 mysql>

    然后在 mysql> 提示 FLUSH PRIVILEGES;

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'n3w_p4$$w0rd';
    

    用您选择的一项修改上面的“n3w_p4$$w0rd”

    然后

    mysql>quit;
    

    将带您回到 Linux 提示符

    返回第一个 ssh 会话(带有 --skip grant tables 会话的会话)和 ctrl+c 以终止“mysql --skip-grant-tables”会话

    那么你需要在正常模式下重启mysql(不跳过授权表)如下

    sudo systemctl restart mysql.service
    

    此时我再次重新启动了整个服务器

    都解决了。

    • 0
  4. below43
    2021-07-29T00:32:53+08:002021-07-29T00:32:53+08:00

    我在新的 VPS 上遇到了这个问题。我通过添加一些交换空间来解决它,然后运行

    sudo apt-get install mysql-server 
    

    请参阅https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-18-04

    • 0

相关问题

  • 如果安装了软件包,为什么 aptitude 二进制文件会丢失?

  • 安装 Ubuntu Tweak 的问题

  • “/var/lib/dpkg/updates”文件夹中存储了什么?

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何将 MySQL 数据文件移动到不同的分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve