用户只安装了mysql-client-core-8.0,这只是客户端工具,确实没有安装服务器。考虑到这是开发环境,建议直接安装完整的MySQL服务器,这样最方便测试。如果用户已经有远程MySQL服务器想连接,那就需要提供连接参数。
给出具体的步骤,包括安装MySQL服务器、启动服务、设置root密码,然后在MySQL客户端中执行那些SQL语句。同时要提醒用户安全注意事项,比如修改默认密码。考虑到用户可能不熟悉MySQL的安全初始化流程,我应该给出完整的操作序列。
🔧 第一步:安装并启动MySQL服务器(服务端)
您刚才安装的 mysql-client-core-8.0 只是客户端工具(类似于一个访问数据库的“遥控器”),我们还需要安装并启动MySQL服务器(数据库“主机”本身)。
# 1. 安装MySQL服务器sudo apt updatesudo apt install -y mysql-server
# 2. 启动MySQL服务(在WSL中通常这样启动)sudo service mysql start# 或者使用(效果相同):sudo /etc/init.d/mysql start
# 3. (可选但推荐)设置MySQL服务开机自启sudo systemctl enable mysql
# 4. 检查MySQL服务状态,确认它正在运行sudo service mysql status
如果状态显示 active (running),说明数据库服务器已经启动成功。
🛠️ 第二步:安全初始化并登录MySQL(配置“遥控器”连接)
MySQL安装后默认有一个空密码的root用户,但直接登录可能被阻止,需要进行安全初始化。
# 1. 运行安全初始化脚本。它会提示您设置root密码、移除匿名用户等。sudo mysql_secure_installation
请按照屏幕提示操作,务必牢记您设置的root密码。
# 2. 使用刚设置的密码,以root用户登录MySQL客户端mysql -u root -p
系统会提示您输入密码。输入成功后,您会看到提示符变为 mysql> ,这表示您已经成功进入了MySQL的命令行环境,在这里才能执行SQL语句。
📝 第三步:在MySQL命令行中创建数据库和表
现在,请在 mysql> 提示符后,依次执行我们之前计划好的SQL语句:
-- 1. 创建数据库CREATE DATABASE content_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 使用这个数据库USE content_hub;
-- 3. 执行您之前提供的(以及扩展的)建表语句CREATE TABLE task ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL COMMENT '选题标题', keywords TEXT COMMENT '关键词', status ENUM('pending', 'generating', 'review', 'publishing', 'published', 'failed') DEFAULT 'pending', ai_raw_content LONGTEXT COMMENT 'AI生成的原始内容', final_content LONGTEXT COMMENT '审核后的最终内容', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
-- 创建发布平台配置表CREATE TABLE publish_platform ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL COMMENT '如:joomla, wechat', config JSON COMMENT '存储API URL、密钥等JSON化配置', is_active BOOLEAN DEFAULT TRUE);
-- 创建发布日志表CREATE TABLE publish_log ( id INT PRIMARY KEY AUTO_INCREMENT, task_id INT, platform_id INT, status ENUM('success', 'failed'), response TEXT COMMENT '平台返回的原始响应', published_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (task_id) REFERENCES task(id), FOREIGN KEY (platform_id) REFERENCES publish_platform(id));
重要操作提示:
- 每条完整的SQL语句必须以分号 (;) 结尾,然后按回车执行。
- 执行成功后,您会看到 Query OK, 0 rows affected 的提示。
- 您可以输入 SHOW TABLES; 来查看刚创建好的三张表。
完成后,输入 exit; 或 quit; 退出MySQL命令行,回到Linux的bash终端(提示符变回 (venv) bluetooth@rafavi:~$)。
✅ 下一步验证与行动
完成以上所有步骤后,您的数据库基础就搭建好了。接下来,我们回到Python项目,安装操作MySQL所需的库,并测试连接。
# 确保您在虚拟环境 (venv) 中,且位于项目目录 ~/ContentAutomationHub# 安装Python的MySQL驱动(我们使用pymysql)pip install pymysql
# 您可以创建一个简单的 test_db.py 文件测试连接# 将以下代码复制进去,并将 'your_root_password' 替换为您实际设置的密码cat > test_db.py << 'EOF'import pymysql.cursors
connection = pymysql.connect( host='localhost', user='root', password='your_root_password', # 请修改这里! database='content_hub', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
try: with connection.cursor() as cursor: cursor.execute("SELECT VERSION()") result = cursor.fetchone() print(f"数据库连接成功!MySQL版本:{result['VERSION()']}")finally: connection.close()EOF
# 运行测试脚本python test_db.py
如果看到“数据库连接成功!”和版本号,那么恭喜您,数据库和Python环境的对接已经完美完成!我们可以立刻回到主线任务,继续编写Flask应用的核心逻辑了。