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 / 问题 / 825579
Accepted
Omid
Omid
Asked: 2016-09-16 22:31:41 +0800 CST2016-09-16 22:31:41 +0800 CST 2016-09-16 22:31:41 +0800 CST

在 Ubuntu 16.04 上升级到 MySQL 5.7.15 崩溃

  • 772

昨晚我尝试升级我的 Ubuntu 操作系统,而 MySQL 5.7.15 是其中的变化之一。升级似乎是成功的,因为 mysql 正在正常工作,但安装过程已停止使用此消息:

This installation of MySQL is already upgraded to 5.7.15, 
use --force if you still need to run mysql_upgrade

我无法以常规方式取消安装过程,只能将其杀死。因此,它可能会导致一些问题,并且对于每个其他安装(将来)它都会尝试再次执行此操作。

如何防止或解决此升级?

16.04
  • 5 5 个回答
  • 20212 Views

5 个回答

  • Voted
  1. Best Answer
    Omid
    2016-09-18T10:29:30+08:002016-09-18T10:29:30+08:00

    这个解决方案解决了我的问题:

    1. 使用权限备份您的数据库文件:

      sudo cp -avt /your/backup/directory /var/lib/mysql /etc/mysql/my.cnf
      
    2. 删除mysql文件:

      sudo rm -rv /etc/mysql 
      
    3. 通过运行完全删除 MySQL:

      sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-5.7
      

      建议使用Synaptic。

    4. 创建这些文件夹:

      sudo mkdir -p /etc/mysql/conf.d
      

      mysql setup 没有自动完成,我不知道为什么。

    5. 再次安装 MySQL

      sudo apt install mysql-server
      

      我曾经sudo apt install lamp-server^为 PHP 开发安装其他依赖项。

    6. 停止 MySQL:

      sudo service mysql stop 
      
    7. 恢复数据库和文件:

      sudo cp -a /your/backup/directory/mysql /var/lib   
      sudo cp /your/backup/directory/my.cnf /etc/mysql 
      
    8. 重启 MySQL:

      sudo service mysql start 
      
    • 13
  2. Petro Zendran
    2020-05-06T14:30:03+08:002020-05-06T14:30:03+08:00

    一个简单的解决方案是sudo killall mysqld在 apt-get 操作运行时进行。

    之后 apt 操作继续运行,没有任何错误(!)

    • 10
  3. Asefa Tasew
    2017-03-28T06:10:57+08:002017-03-28T06:10:57+08:00

    我设法解决了这个问题,而不必清除所有东西。似乎问题在于从未创建过 sys 模式数据库,所以这是解决方案:

    1. 克隆https://github.com/mysql/mysql-sys并 cd 到克隆的文件夹中。
    2. 在终端中,运行 mysql -u root -p < ./sys_57.sql(或 sys_56.sql,取决于您的版本)

    享受 mysql_upgrade 再次工作。我想这可能是升级脚本搞砸了。

    • 4
  4. Gab
    2019-05-15T07:35:42+08:002019-05-15T07:35:42+08:00

    如果您的 root@localhost帐户没有密码,则安装后过程中存在错误,如此处所述( 特别参见线程的最后一条评论)

    • 清除所有TMP*文件/var/lib/mysql-files
    • 编辑文件/var/lib/dpkg/info/mysql-server-5.7.postinst并注释(使用#)第 370 行:

      echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'auth_socket';" >> "$initfile"

    • 再次运行sudo dpkg --configure -a

    • 3
  5. Jeremy French
    2017-10-26T15:51:49+08:002017-10-26T15:51:49+08:00

    我也有这个问题。每次我开始 apt get 并安装时,该过程都会在数据库更新之后或期间挂起。这里没有其他解决方案有效。

    最后我清除了

    sudo apt purge mysql-server mysql-server-5.7
    

    并按照此处mysql 的说明进行手动安装

    然后我用我的旧数据覆盖了数据目录

    sudo cp -Rfv /var/lib/mysql /usr/local/mysql/data
    

    最后添加了这样的systemd服务

    /lib/systemd/system/mysql.service

    [Unit]
    Description=MySQL Server
    After=syslog.target
    After=network.target
    
    [Service]
    Type=simple
    PermissionsStartOnly=true
    ExecStartPre=/bin/mkdir -p /var/run/mysqld
    ExecStartPre=/bin/chown mysql:mysql -R /var/run/mysqld
    ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
    TimeoutSec=300
    PrivateTmp=true
    User=mysql
    Group=mysql
    WorkingDirectory=/usr
    
    [Install]
    WantedBy=multi-user.target
    

    然后跑了

    # systemctl daemon-reload
    # systemctl enable mysql
    # systemctl start mysql
    

    然后一切似乎都像以前一样工作并且mysql没有破坏系统更新

    当然,缺点是我将来需要手动更新。

    • 2

相关问题

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