连接本地虚拟机的MySQL数据库需要以下几个步骤:

  1. 确保MySQL已安装并在虚拟机上运行。可以使用以下命令检查MySQL运行状态:
sudo service mysql status

如果MySQL未运行,使用以下命令启动MySQL:

sudo service mysql start
  1. 在虚拟机上创建一个MySQL用户,并授予该用户对数据库的访问权限。可以使用以下命令创建用户和授权:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

请将usernamepassword替换为您希望使用的用户名和密码。

  1. 确保虚拟机的防火墙允许外部访问MySQL的端口(默认为3306)。可以使用以下命令检查防火墙状态:
sudo ufw status

如果防火墙未启用,请不要执行此步骤。如果防火墙已启用,请使用以下命令允许对MySQL端口的访问:

sudo ufw allow 3306
  1. 在本地机器上安装MySQL的Python驱动程序。可以使用以下命令安装:
pip install mysql-connector-python
  1. 在本地机器上编写Python代码来连接MySQL。以下是一个示例代码:
import mysql.connector

# 创建连接
cnx = mysql.connector.connect(user='username', password='password',
                              host='ip_address_of_virtual_machine',
                              database='database_name')

# 创建游标
cursor = cnx.cursor()

# 执行查询
query = ("SELECT * FROM table_name")
cursor.execute(query)

# 处理查询结果
for row in cursor:
    print(row)

# 关闭游标和连接
cursor.close()
cnx.close()

请将usernamepasswordip_address_of_virtual_machinedatabase_name替换为相应的值。table_name是您希望查询的表名。

以上代码创建一个MySQL连接,并执行一个简单的查询。可以根据自己的需要修改代码。

类图如下所示:

classDiagram
    class MySQLConnector {
        +connect(user, password, host, database) : Connection
    }
    
    class Connection {
        +cursor() : Cursor
        +close() : void
    }
    
    class Cursor {
        +execute(query) : void
        +fetchone() : tuple
        +fetchall() : list[tuple]
        +close() : void
    }
    
    MySQLConnector --> Connection
    Connection --> Cursor

通过上述步骤,我们可以连接到本地虚拟机上的MySQL数据库,并使用Python代码进行数据操作。记得根据实际情况修改代码中的参数,以及根据需要进行异常处理和其他操作。