从0开始搭建MySQL服务 | 创建库 、创建表、数据写入、查数据
刚刚看到了今年的博客之星的评选信息,点进去看我还不符合条件,2024年全年发布20篇文章,并且评分较高才可以,我刚好是19篇查1篇文章满足条件,所以赶紧翻了一下今年的笔记,找了一篇有点价值的笔记。
MySQL服务搭建不算新知识,我今年开启新项目的时候需要数据存储记了这个笔记,记录了一下使用的全流程操作。
1. mySQL服务搭建
sudo apt-get update
sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
pip3 install mysql
pip3 install mysql-connector-python
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 3147925
2. 创建用户
在MySQL中创建新用户,你可以使用CREATE USER
语句。首先,你需要登录到MySQL:
sudo mysql -u root -p
然后输入你的root用户密码。在MySQL提示符下,你可以创建新用户。例如,要创建一个名为newuser
,密码为password
的新用户,你可以使用以下命令:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
1 个漏洞
这将创建一个新用户,但是这个用户在任何数据库中都没有权限。你可以使用GRANT
语句来给用户权限。例如,要给newuser
在所有数据库和表中的所有权限,你可以使用:
GRANT ALL PRIVILEGES ON . TO 'newuser'@'localhost';
然后,为了让这些更改生效,你需要使用FLUSH PRIVILEGES
命令:
FLUSH PRIVILEGES;
现在,newuser
应该能够登录并访问任何数据库。如果你想限制newuser
只能访问特定的数据库,你可以在GRANT语句中指定数据库和表的名称。
3. 创建数据库和表
CREATE DATABASE ai_agent;
USE ai_agent
CREATE TABLE prompt_hub ( templateType VARCHAR(255), templateId VARCHAR(255), prompt VARCHAR(255) );
4. 在表中插入数据
在名为prompt_hub
的表中插入数据,其中templateType
字段的值是app
,prompt
的字段值是"
你是一个应用选择器,你需要根据用户输入的内容,判断用户想要使用的应用,并给出应用名。
# 可用的应用
{apps}
- 邮件
# 你的回复要求
- 你只需要给出应用名,不需要给出其他信息。
- 如果用户输入的内容中没有应用名,你需要给出一个空列表。
- 你需要执行我给你的函数,函数名为 app_picker。
- 无论如何你都要返回一个数组
templateId
字段的值从是1
INSERT INTO prompt_hub (templateType, templateId, prompt)
VALUES ('app', '1', '你是一个应用选择器,你需要根据用户输入的内容,判断用户想要使用的应用,并给出应用名。\n# 可用的应用\n{apps}\n- 邮件\n# 你的回复要求\n- 你只需要给出应用名,不需要给出其他信息。\n- 如果用户输入的内容中没有应用名,你需要给出一个空列表。\n- 你需要执行我给你的函数,函数名为 app_picker。\n- 无论如何你都要返回一个数组');
INSERT INTO prompt_hub (templateType, templateId, prompt)
VALUES ('tool', '2', '你是一个工具选择器,你需要根据用户输入的内容,判断用户想要使用的工具,并给出工具名。\n# 你可用的工具\n{tools}\n# 你的回复要求\n- 你必须执行我给你的函数,函数名为 tools_picker。\n- 无论如何你都要返回一个数组\n- 你只需要给出工具名,不需要给出其他信息。\n- 如果用户输入的内容中没有工具名,你需要给出一个空列表。');
INSERT INTO prompt_hub (templateType, templateId, prompt)
VALUES ('operation', '3', '你是一个任务调度器,你需要根据用户的输入,来分步完成任务。\n# 可用的工具\n{tools}\n# 你的回复要求\n- 你需要调用我给你的工具完成任务\n- 每个工具你都应该调用一次\n- 你需要一步一步来完成我分发给你的事项。\n- 你每次只要执行一项任务。\n- 你需要根据上下文判断下一步操作。\n- 当遇到和时间相关的事项时,你一定要根据当前的时间进行下一步操作。\n- 当使用搜索时,请提供对搜索引擎友好的关键词,比如多个关键词中间加空格。\n- 当你认为任务已经完成时,请告诉我。');
5. 查看表
SELECT * FROM prompt_hub