首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在WSL上安装mysql-server。

问无法在WSL上安装mysql-server。
EN

Stack Overflow用户
提问于 2019-03-12 17:33:49
回答 2查看 3.3K关注 0票数 10

我正在WSL上运行Ubuntu18.04,并试图安装MySQL-server。

我一直得到显示在所附屏幕截图上的错误.我试过好几次

  • apt删除--清除MySQL*
  • apt-获取自动删除
  • 自动清洗
  • sudo dpkg -配置-a
  • sudo apt-获取安装-f
  • sudo apt-获取dist-升级

有什么想法吗?我总是犯同样的错误。

误差输出

EN

回答 2

Stack Overflow用户

发布于 2020-01-22 15:41:23

根据您的输出,它看起来像包mysql-server依赖于mysql-server-5.7,但是mysql-server-5.7在以前的installation.So中没有正确配置,您可以删除mysql-server-5.7及其包并重新安装。

删除‘mysql-server-5.7’及其依赖项

代码语言:javascript
复制
sudo dpkg -r mysql-client-5.7
sudo dpkg -r mysql-server-5.7
sudo dpkg -r libmysqlclient20:i386
sudo dpkg -r libmysqlclient20:amd64
sudo dpkg -r libmysqlclient18:amd64
sudo dpkg -r mysql-common

重新安装mysql-server

代码语言:javascript
复制
sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
票数 2
EN

Stack Overflow用户

发布于 2020-04-27 23:01:44

我也遇到了同样的问题,我采取了这些措施来解决这个问题。如果您想要快速的TL;DR,只需跳到步骤2(对于MySQL 5.x)或步骤4(对于MySQL 8.x)。

STEP1:

有些人会收到关于套接字的错误(就像管道一样,套接字使mysql服务器与其客户端之间的通信成为可能),因此建议使用命令行选项--protocl=TCP或向mysqld.conf中添加--protocol:tcp以使其使用TCP而不是这些套接字(这些套接字更有利于更快的本地连接)。但是,当我试图保存配置文件(使用"sudo“启动)时,出现了错误Error writing /etc/mysql/mysqld.conf.d/mysqld.conf: No such file or directory"。我甚至从零开始清理了所有东西并重新安装了mysql:

代码语言:javascript
复制
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

但对我来说,即使是配置文件也不存在。

STEP2:

我看到正在运行的mysql表示mysql.exe: command not found,所以我认为主要的问题是如何从PATH中找到可执行文件。但是/etc/bin/mysql存在,而且/etc/bin也在路径中,所以我不知道在运行mysql时为什么会得到命令找不到的错误。总之,我运行了/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。

STEP3:

我正在学习一个基于MySQL 8的教程,所以我认为升级到MySQL版本8可能会解决我的两个问题(事实证明,sudo的必要性根本不是一个问题,它必须正常存在,如果未配置,则为其他)。因此,我遵循这里中的说明。我将MySQL APT存储库添加到我的存储库列表中,然后apt更新&重新安装mysql服务器。这一次,我得到了一个询问版本的窗口,我选择了版本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也帮不上忙了!

STEP4:

我检查了/var/log/mysql/error.log中的错误日志,发现这个描述有一个问题:Linux Native AIO interface is not supported on this platform。因此,我搜索它并最终修复了使用MySQL在WSL上使用这是来自@jw-红熊猫的非常有用的评论。安装这是来自@jw-红熊猫的非常有用的评论。版本8的问题。

直接安装MySQL 8.x不会在WSL 1上工作(这可能是我们在第3步失败的原因)。启动服务器有问题。以下步骤应有效:

1.删除MySQL 8.x:

代码语言:javascript
复制
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:

代码语言:javascript
复制
sudo apt-get update

4.安装MySQL 5.x

代码语言:javascript
复制
sudo service mysql start (this should work without error)

5.更改为MySQL 8.x候选

代码语言:javascript
复制
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.修改脚本,因为存在bug

代码语言:javascript
复制
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

代码语言:javascript
复制
sudo service mysql start (this should start without error)
sudo mysql -u root -p

希望这也适用于你!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55127513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档