wsl2 中的flask程序如何链接宿主机的Mysql
时间: 2023-05-29 20:03:02 浏览: 289
0256-极智开发-解读让wsl2读取宿主机usb设备
要在WSL2中的Flask程序中连接到宿主机的MySQL数据库,可以按照以下步骤进行操作:
1. 在WSL2中安装mysql-client:
```
sudo apt-get update
sudo apt-get install mysql-client
```
2. 在宿主机中创建MySQL数据库,并允许来自WSL2的连接。可以使用以下命令创建一个名为“mydatabase”的数据库:
```
mysql -u root -p
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
exit
```
3. 在WSL2中安装Python MySQL驱动程序,例如mysql-connector-python:
```
pip install mysql-connector-python
```
4. 在Flask应用程序中添加MySQL连接代码。例如,以下代码将连接到名为“mydatabase”的数据库,使用用户名“myuser”和密码“mypassword”:
```
from flask import Flask
import mysql.connector
app = Flask(__name__)
@app.route('/')
def index():
cnx = mysql.connector.connect(user='myuser', password='mypassword',
host='10.0.2.2', database='mydatabase')
cursor = cnx.cursor()
query = ("SELECT * FROM mytable")
cursor.execute(query)
data = cursor.fetchall()
cursor.close()
cnx.close()
return str(data)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
```
注意,这里的“host”参数应设置为宿主机的IP地址,而不是“localhost”或“127.0.0.1”。这是因为WSL2中的网络是通过虚拟网桥进行管理的,因此需要使用宿主机的IP地址来连接到宿主机的MySQL服务器。
5. 运行Flask应用程序,然后在浏览器中访问“http://localhost:5000/”(或其他端口,如果您在应用程序中使用了不同的端口)。如果一切顺利,您应该能够看到从MySQL数据库中检索的数据。
阅读全文