用mysql实现一个简单的论坛后台
一个简单的论坛后台,开发环境是CentOS 7.2/C++,数据库使用MySQL,主要逻辑都放到MySQL里。
环境搭建
安装mysql server
在 页面,选择“Red Hat Enterprise Linux / Oracle Linux”和“Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)”后,下载RPM Bundle。 然后基本依照 安装即可。
安装mysql connector
从 页面,下载 ysql-connector-c+±8.0.23-1.el7.x86_64.rpm mysql-connector-c+±jdbc-8.0.23-1.el7.x86_64.rpm mysql-connector-c+±devel-8.0.23-1.el7.x86_64.rpm mysql-connector-c+±debuginfo-8.0.23-1.el7.x86_64.rpm 依次安装即可。
安装mysql Workbench
从 下载Workbench的Windows版本。 安装时如果提示需要visual c++ 2019 redistributable,从 下载安装。 创建一个账号用以远程管理数据库:
CREATE USER root@10.64.16.10 IDENTIFIED BY mysql; grant all privileges on *.* to root@10.64.16.10; flush privileges;
ssh -gN -L 33306:localhost:3306 localhost
详细介绍见于 。
表结构
create database xianyou; create table if not exists xianyou.post( zoneid int, boardid int, postid int auto_increment, authorid bigint unsigned, authorname char(8), quotepostid int, tagid int, anonymity bool, likenum int default 0, replynum int default 0, ctime datetime default CURRENT_TIMESTAMP, avatar text, pics text, content blob, plain text, primary key(zoneid, boardid, postid), unique index(postid), index(authorid) ); create table if not exists xianyou.star( likerid bigint unsigned, postid int, likername char(8), ctime datetime default CURRENT_TIMESTAMP, primary key(likerid, postid), index(postid, ctime) ); create table if not exists xianyou.reply( postid int, replyid int auto_increment, replyerid bigint unsigned, replyername char(8), replytoid bigint unsigned, replytoname char(8), ctime datetime default CURRENT_TIMESTAMP, content blob, primary key(postid, replyid), unique index(replyid) ); create table if not exists xianyou.notify( receiver bigint unsigned, sid int auto_increment, senderid bigint unsigned, sendername char(8), postid int, boardid int, replyid int, notifytype int, ctime datetime default CURRENT_TIMESTAMP, postdigest char(5), primary key(sid), index(receiver, sid desc) );
