怎么把虚拟机上的sql连接进主机电脑的sql上
时间: 2024-12-20 18:18:26 浏览: 3
Vmware虚拟机MSCS-SQL_server群集安装.docx
要将虚拟机上的应用程序连接到主机电脑上的MySQL数据库,你需要进行以下步骤:
1. **配置主机上的MySQL服务器**:
- 确保MySQL服务器允许远程连接。编辑MySQL配置文件(通常是`my.cnf`或`my.ini`),找到并修改以下行:
```ini
bind-address = 0.0.0.0
```
- 重启MySQL服务以应用更改:
```sh
sudo systemctl restart mysql
```
2. **创建一个允许远程访问的用户**:
- 登录到主机上的MySQL服务器:
```sh
mysql -u root -p
```
- 创建一个新的用户并授权:
```sql
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
```
3. **配置防火墙**:
- 确保主机的防火墙允许来自虚拟机的连接。例如,使用`ufw`(Uncomplicated Firewall):
```sh
sudo ufw allow 3306/tcp
sudo ufw reload
```
4. **修改虚拟机中的代码**:
- 修改虚拟机中连接MySQL的代码,使其指向主机的IP地址和新用户的凭据。假设主机的IP地址为`192.168.1.100`,用户名为`newuser`,密码为`password`:
```python
import pymysql
import matplotlib.pyplot as plt
def selectSQL():
db = pymysql.connect(
host="192.168.1.100",
user="newuser",
password="password",
db="co2",
charset='utf8'
)
cursor = db.cursor()
try:
sql = "SELECT * FROM wlg"
cursor.execute(sql)
data = cursor.fetchall()
return data
except Exception as e:
print(f"selsct Error: {e}")
finally:
db.close()
def draw(data):
name_list = []
data_list = []
for item in data:
name_list.append(item[1])
data_list.append(item[2])
plt.plot(name_list, data_list, marker='.', color='r')
plt.title('CO2')
plt.xlabel('year')
plt.ylabel('CO2(mg/L)')
plt.tick_params(direction='in')
plt.show()
def main():
draw(selectSQL())
if __name__ == "__main__":
main()
```
通过以上步骤,你可以成功地将虚拟机上的Python脚本连接到主机上的MySQL数据库,并执行查询和绘制图表的操作。
阅读全文