C++搭建集群聊天室(七):MySQL数据库配置 及项目工程目录配置

2021-09-18 15:04:58 浏览数 (1)

安装MySQL

如果是跟我一样使用CentOS8的话,那就自信点: CentOS 三分钟快速安装MySQL


mysql建表

数据库叫 chat

User

字段名称

字段类型

字段说明

约束

id

INT

用户id

PRIMARY KEY、AUTO_INCREMENT

name

VARCHAR(50)

用户名

NOT NULL, UNIQUE

password

VARCHAR(50)

用户密码

NOT NULL

state

ENUM(‘online’, ‘offline’)

当前登录状态

DEFAULT ‘offline’


Friend

字段名称

字段类型

字段说明

约束

userid

INT

用户id

NOT NULL、联合主键

friendid

INT

好友id

NOT NULL、联合主键


AllGroup

字段名称

字段类型

字段说明

约束

id

INT

组id

PRIMARY KEY、AUTO_INCREMENT

groupname

VARCHAR(50)

组名称

NOT NULL,UNIQUE

groupdesc

VARCHAR(200)

组功能描述

DEFAULT ‘’


GroupUser

字段名称

字段类型

字段说明

约束

groupid

INT

组id

NOT NULL、联合主键

userid

INT

组员id

NOT NULL、联合主键

grouprole

ENUM(‘creator’, ‘normal’)

组内角色

DEFAULT ‘normal’


OfflineMessage

字段名称

字段类型

字段说明

约束

userid

INT

用户id

NOT NULL

message

VARCHAR(500)

离线消息(存储Json字符串)

NOT NULL


项目工程配置

代码语言:javascript复制
mkdir CHAT
cd CHAT
mkdir bin build include include/server src src/server src/client test thirdparty
touch CMakeLists.txt src/CMakeLists.txt src/server/CMakeLists.txt
chmod 757 *
chmod 757 ./src/*

然后,第一个CMake文件:

代码语言:javascript复制
cmake_minimum_required(VERSION 3.0) # 最低版本
project(main)   # 给这个工程一个名字,这不是可执行文件的名字,是工程的名字

# 设置编译选项,不知道最后能不能过
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)

# 设置可执行文件最后的输出目录
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# 配置头文件的搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/include/server)
include_directories(${PROJECT_SOURCE_DIR}/thirdparty)

# 加载子目录
add_subdirectory(src)

第二个cmake文件:

代码语言:javascript复制
# 加载子目录
add_subdirectory(server)

第三个cmake文件:

代码语言:javascript复制
# 定义一个SRC_LIST变量,存放该目录下所有的源文件
aux_source_directory(. SRC_LIST)

# 指定生成可执行文件
add_executable(ChatServer ${SRC_LIST})

# 指定可执行文件生成时需要链接的外部库
target_link_libraries(ChatServer muduo_net muduo_base pthread)

# 指定可执行文件存放位置
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}../../bin)

0 人点赞