我遇到了完全相同的问题,我采取了这些步骤来解决它。 如果您想要快速的 TL;DR,只需跳到第 2 步(对于 MySQL 5.x)或第 4 步(对于 MySQL 8.x)。我只是将其他两个步骤作为很好地谈谈对我不起作用(但可能对其他人仍然有帮助):
第 1 步:
有些人对 sockets 有错误(就像管道一样,sockets 是使 mysql 服务器与其客户端之间的通信成为可能的东西),因此建议使用命令行选项 --protocl=TCP 或添加 @987654326 @mysqld.conf 使其使用 TCP 而不是这些套接字(这对于更快的本地连接更好)。但是当我尝试保存该配置文件(以“sudo nano”启动)时出现错误Error writing /etc/mysql/mysqld.conf.d/mysqld.conf: No such file or directory"。
我什至清理了所有东西并从头开始重新安装了mysql:
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get remove --purge *mariadb*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt update
sudo apt upgrade
sudo apt-get install mysql-server
但我什至连那个配置文件都不存在。
第二步:
我看到运行mysql 说mysql.exe: command not found,所以我认为主要问题是从PATH 中查找可执行文件。但是/etc/bin/mysql 存在并且/etc/bin 在PATH 中,所以我不知道为什么在运行mysql 时会出现command-not-found 错误。无论如何,我运行 /etc/bin/mysql 并给出了另一个错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
一不小心,我尝试sudo mysql,突然成功连接到mysql服务器并显示5.7版本。即,只添加 sudo 就可以了!我不是 Linux 专家,但我 [曾经] 认为当需要 sudo 时,我应该得到 permission error 而不是 mysql.exe: command not found。
第三步:
我正在学习基于 MySQL 8 的教程。所以我认为可能升级到 MySQL 版本 8 可能会解决我的两个问题(事实证明,sudo 的必要性是根本不是问题,它必须正常存在,if not configured otherwise)。所以我按照here 中的说明进行操作。我将 MySQL APT 存储库添加到我的存储库列表中,然后 apt update & re-install the mysql-server。这一次,我得到一个询问版本的窗口,我选择版本 8。安装完成,sudo mysql --version 给出mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL),但是,这一次即使sudo mysql 给出错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)。现在即使sudo 也无济于事!
第 4 步:
我检查了/var/log/mysql/error.log 中的错误日志,发现这个描述有问题:Linux Native AIO interface is not supported on this platform。所以我用谷歌搜索它,最后使用this very helpful comment from @jw-redpanda 解决了我在 WSL 上安装 MySQL 版本 8 的问题:
直接安装 MySQL 8.x 将无法在 WSL 1 上运行(这可能是我们在第 3 步失败的原因)。启动服务器有问题。以下步骤应该有效:
1.删除 MySQL 8.x:
sudo apt-get purge mysql-server mysql-client
sudo apt-get -y autoremove
2。更改为 MySQL 5.x 候选版本:
sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
(如果没有,请从这里获取:https://dev.mysql.com/downloads/repo/apt/)
3.仔细检查 MySQL 的当前 apt 策略是 5.x:
sudo apt-get update
4.安装 MySQL 5.x
sudo service mysql start (this should work without error)
5.更改为 MySQL 8.x 候选版
sudo apt-get update
sudo apt policy mysql-server (it will show 8.x is the default candidate)
6.安装 MySQL 8.x
sudo apt-get -y install mysql-server
7.修改脚本,因为有错误
sudo nano /etc/init.d/mysql
(search for a line ". /usr/share/mysql/mysql-helpers" and change it to
". /usr/share/mysql-8.0/mysql-helpers")
8.将系统表升级到 MySQL 8.x
sudo service mysql start (this should start without error)
sudo mysql -u root -p
希望这也对你有用!