在 WSL2 Debian 中运行 MySQL8.0

如果在 WSL2 Ubuntu18.04 上安装 MySQL8.0,则MySQL将无法正常工作。

尝试安装 MySQL8。

安装后,使用服务命令启动mysql时,将显示"mysql:未重新编码的服务",并且无法启动。

***@***:~$ service mysql start
mysql: unrecognized service

直接运行 /usr/bin/mysql也会导致错误。

***@***:~$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

官方文档

dev.mysql.com

解决方法:

在GitHub上找到个方法:https://github.com/Microsoft/WSL/issues/3631#issuecomment-465966498

采用的是安装 MySQL5.X 并将其升级为 MySQL8,然后修改脚本。

使用wget或者curl下载mysql包

MySQL储存库https://dev.mysql.com/downloads/repo/apt/复制链接

用crul下载包

***@***:~$ curl -LO https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 35532 100 35532 0 0 25525 0 0:00:01 0:00:01 --:--:-- 25525

安装下载的包。

***@***:~$ sudo dpkg -i ./mysql-apt-config_0.8.15-1_all.deb

使用 Tab 键将焦点设置为"确定",然后单击"确定"

 选择5.7

确保mysql-5.7,并使用光标键将焦点移动到"确定",然后

sudo apt upate一下

***@***:~$ sudo apt update

 安装

***@***:~$ sudo apt install -y mysql-server

 启动一下MySQL服务试试

***@***:~$ sudo service mysql start
..
 * MySQL Community Server 5.7.32 is started

 没问题,可以看到服务启动了,接下来开始升级MySQL8.0版本

先停止服务

***@***:~$ sudo service mysql stop
..
 * MySQL Community Server 5.7.32 is stopped

将MySQL安装更改为 MySQL8.0。

使用以下命令启动配置菜单。

***@***:~$ sudo dpkg-reconfigure mysql-apt-config

 按 Tab 键确定焦点,然后按 Enter 前进。

 使用光标选择mysql-8.0,使用 Tab 键将焦点设置为"确定"

 使用光标选择"确定"以退出菜单。

 更新到 MySQL8.0。

***@***:~$ sudo apt update
***@***:~$ sudo apt upgrade

 此时运行mysql服务时,会显示错误消息。

***@***:~$ sudo service mysql start
/etc/init.d/mysql: line 40: /usr/share/mysql/mysql-helpers: No such file or directory
/etc/init.d/mysql: line 51: pathfind: command not found
/etc/init.d/mysql: line 56: get_mysql_option: command not found
/etc/init.d/mysql: line 63: get_running: command not found
/etc/init.d/mysql: line 63: [: : integer expression expected
/etc/init.d/mysql: line 67: verify_ready: command not found
/etc/init.d/mysql: line 68: verify_database: command not found
/etc/init.d/mysql: line 73: verify_server: command not found
 * MySQL Community Server unknown did not start. Please check logs for more details.

 即使有错误,mysql进程还是启动了

***@***:~$ ps -ef|grep mysql
mysql 9657 6 0 09:02 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql 9771 9657 8 09:02 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --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

杀MySQL的所有进程。

***@***:~$ sudo pkill mysql

 修改"/etc/init.d/mysql"文件。

***@***:~$ sudo vi /etc/init.d/mysql

 修正前「 /usr/share/mysql/mysql-helpers」

修正后「/usr/share/mysql-8.0/mysql-helpers」

 保存

启动mysql服务看看效果

***@***:~$ sudo service mysql start
..
 * MySQL Community Server 8.0.22 is started

完美!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值