簡體   English   中英

無法在純 ubuntu 20.04 上安裝 mysql

[英]Can't install mysql on pure ubuntu 20.04

我剛剛安裝了 WSL Ubuntu 20.04,我做的第一件事是

 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get install mysql-server

它給了我什么

Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
invoke-rc.d: could not determine current runlevel
 * Stopping MySQL database server mysqld                                                                                                                         [ OK ]
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)
Cannot open /proc/net/unix: No such file or directory
Cannot stat file /proc/1/fd/5: Operation not permitted
Cannot stat file /proc/1/fd/10: Operation not permitted
Cannot stat file /proc/1/fd/6: Operation not permitted
Cannot stat file /proc/42/fd/7: Operation not permitted
Cannot stat file /proc/42/fd/10: Operation not permitted
Cannot stat file /proc/42/fd/5: Operation not permitted
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 3726
sleep: cannot read realtime clock: Invalid argument
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:依賴問題阻止了 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
    Setting up libcgi-pm-perl (4.46-1) ...
    No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                              Setting up libhtml-template-perl (2.97-1) ...
    Setting up libcgi-fast-perl (1:2.15-1) ...
    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
    E: Sub-process /usr/bin/dpkg returned an error code (1)

然后我嘗試sudo mysql_secure_installation

Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

這不僅在 WSL 上。

我和你有同樣的問題; 我在Windows 10中使用Ubuntu 20.04 WSL版本執行了以下操作,它幫助了我。 首先,由於dependency problems - leaving unconfigured的錯誤,我在這里按照這個答案清除MySQL並嘗試重新安裝:

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

sudo apt-get install mysql-server

完成后問題仍然存在(但無論如何這肯定是有幫助的)。

下一個線索是Can't connect to local MySQL server through socket錯誤... MySQL命令詢問密碼並提供錯誤的密碼會導致此錯誤。 密碼還沒有設置,對吧? 錯誤的! 閱讀MySQL 8.0 參考手冊 - 默認權限安裝最初會設置一個隨機密碼。 所以必須先更改root密碼。

為此,我遵循了這個答案 為方便起見,我在此處復制該答案:

在 ubuntu 我做了以下事情:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

然后在新終端中運行 mysql:

mysql -u root

並運行以下查詢來更改密碼:

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;

在 MySQL 5.7 中,刪除了 mysql.user 表字段中的密碼字段,現在字段名稱為“authentication_string”。

引用答案后,請注意PASSWORD() function 已被棄用,因為在此處的此答案中共享。 如那里所述,只需使用我使用的任何MySQL 加密函數替換它MD5()

最后:

sudo service mysql start
* Starting MySQL database server mysqld                     [ OK ]

作為第一步,嘗試這些步驟

sudo apt-get remove --purge mysql*

sudo apt-get purge mysql*

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get remove dbconfig-mysql

sudo apt-get dist-upgrade

如果您遇到相同的錯誤,請嘗試刪除 MySQL dpkgs 為此,請嘗試以下步驟

dpkg -l | grep mysql

然后你會看到mysql封裝,一一去掉

sudo apt purge [package_name]

或者

sudo dpkg purge [package_name]

雖然有些 pkgs 不會被刪除。保持原樣並嘗試再次安裝 mysql 服務器

sudo apt update

sudo apt install mysql-server

sudo mysql_secure_installation

希望你得到答案。 謝謝你。

安裝凍結時

> sudo killall mysqld

並繼續安裝

我在新的 VPS 上遇到了這個問題。 我通過添加一些交換空間來解決它

# Add swap space on Ubuntu 20 (1000MB)
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo sysctl vm.swappiness=10

然后運行

sudo apt-get install -y mysql-server

這種解決方法也適用於 WSL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM