铁路 火车轨道 你的名字动漫图片_彼岸图网

mysql配置

安装WSL中的Linux环境后,配置python的开发环境,虚拟环境和python版本都已经配置完成后,在项目运行调试的时候发现数据库未配置,下面是配置WSL ubuntu18.04时遇到的一下问题和解决方法。

mysql问题

我电脑上的mysql是安装在windows上的,所以从WSL中连接访问的话属于远程连接,当时不太明白,跟老师也调试了好长时间,最后还是没有连接上,剩下的解决方案就是在WSL中安装mysql这样就可以省去配置mysql的远程连接,想着之前的一下其他东西都是用的windows下的mysql所以还是想直接用这个的,一些数据可以保留下来。

因为mysql默认是禁止远程连接访问的,所以需要打开这个开关,这也是前面一直连接失败的问题所在。下面是解决方法:

在Windows环境下进去mysql的cmd窗口输入下列代码

1
2
3
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES # 这一条命令是刷新mysql的权限相关表,所以必须执行,不然还是会出错

执行完上面的代码后再回到WSL环境下就可以直接通过命令进入数据库了。

1
mysql -h [ip地址] -u root -p

migrate问题

在配置完mysql的东西后运行python项目命令,直接在数据库中生成相关的表,但是在运行migrate命令时出现报错,依然说连接数据库出错,第一时间以为是mysql配置没配好,然后发现是django项目中的settings文件中配置的数据库连接中的host地址问题,在WSL中通过命令cat /etc/resolv.conf可以查看到ip地址,通过该地址即可连接到windows下的mysql,配置进pycharm后再用migrate就可以生成表了,可是每次电脑重启后这个ip地址都会随机改变,那么在pycharm的host又是写死的,这就引出了下一个问题。

固定WSL的ip地址

参考文档