Support us and view this ad

可选:点击以支持我们的网站

免费文章

用户只安装了mysql-client-core-8.0,这只是客户端工具,确实没有安装服务器。考虑到这是开发环境,建议直接安装完整的MySQL服务器,这样最方便测试。如果用户已经有远程MySQL服务器想连接,那就需要提供连接参数。

给出具体的步骤,包括安装MySQL服务器、启动服务、设置root密码,然后在MySQL客户端中执行那些SQL语句。同时要提醒用户安全注意事项,比如修改默认密码。考虑到用户可能不熟悉MySQL的安全初始化流程,我应该给出完整的操作序列。

 

🔧 第一步:安装并启动MySQL服务器(服务端)

您刚才安装的 mysql-client-core-8.0 只是客户端工具(类似于一个访问数据库的“遥控器”),我们还需要安装并启动MySQL服务器(数据库“主机”本身)。

# 1. 安装MySQL服务器
sudo apt update
sudo 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)
);

重要操作提示:

  1. 每条完整的SQL语句必须以分号 (;) 结尾,然后按回车执行。
  2. 执行成功后,您会看到 Query OK, 0 rows affected 的提示。
  3. 您可以输入 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应用的核心逻辑了。


登陆