Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

常见问题与解决方案 #8

Open
qinguoyi opened this issue Apr 8, 2020 · 114 comments
Open

常见问题与解决方案 #8

qinguoyi opened this issue Apr 8, 2020 · 114 comments

Comments

@qinguoyi
Copy link
Owner

qinguoyi commented Apr 8, 2020

大家在运行项目时遇到问题,优先查阅本lssue。

如果本issue不能解决你的问题,欢迎盖楼或直接公号私信我,我会尽快回复。

@qinguoyi
Copy link
Owner Author

qinguoyi commented Apr 8, 2020

  1. 按照README的流程运行,本地编译通过,浏览器端却无法显示欢迎界面。

解决方案:使用云主机或云服务器时,需要开启对应端口。否则,会出现上述问题。

@qinguoyi
Copy link
Owner Author

qinguoyi commented Apr 8, 2020

  1. server port报错,怎么回事?

解决方案:使用./server port运行,另外port不要使用的太小或太大,建议9000左右的闲置端口

@qinguoyi
Copy link
Owner Author

  1. ./server port报错ERROR,更换了端口也没用,怎么回事?

解决方案:

本项目不是下载即用的,请仔细按照README步骤运行。

提前安装MySQL数据库,然后更新代码中的root和数据库信息。

@qinguoyi
Copy link
Owner Author

  1. 完全按照README步骤修改了路径和数据库信息,也更换了几次端口,仍然显示ERROR

解决方案:数据库信息的"localhost"不要修改成“127.0.0.1”,只修改数据库登录名和密码即可。

@qinguoyi
Copy link
Owner Author

  1. 将同步登录校验更换成cgi后,无法实现登录注册功能

解决方案:有时候会出现权限问题,此时通过sudo chmod +777 check.cgi开启权限即可

@qinguoyi
Copy link
Owner Author

qinguoyi commented Apr 14, 2020

  1. ip地址和端口号如何指定?

解决方案:ip地址为本机地址,通过ifconfig查看或直接设置为localhost,端口号指定8000-10000左右

@qinguoyi
Copy link
Owner Author

  1. make时出现mysql.h找不到的报错,mysql.h:没有那个文件或目录编译中断。

解决方案:缺少libmysqlclient-dev
ubuntu:sudo apt-get install libmysqlclient-dev
centos: yum install mysql-devel

@qinguoyi
Copy link
Owner Author

  1. 如果mysql只能使用sudo登录,运行代码时,也必须加sudo,sudo ./server port

@qinguoyi qinguoyi changed the title 项目运行问题与解决方案 常见问题与解决方案 Apr 30, 2020
@qinguoyi
Copy link
Owner Author

qinguoyi commented May 5, 2020

  1. 完全按照readme来,root和数据库信息完全正确,服务器可以正常启动,但浏览器端一直显示拒绝访问

解决方案:可能是mysql版本不一致,推荐使用5.7.29

@qinguoyi
Copy link
Owner Author

qinguoyi commented May 5, 2020

  1. 浏览器端显示连接被重置

解决方案:这种情况一般都是root文件夹的路径没写对,cd进root文件夹,执行pwd命令,将返回路径复制过去即可

Repository owner deleted a comment from PromiseXuan May 19, 2020
@qinguoyi
Copy link
Owner Author

  1. centos7下使用mysql5.7.29编译不通过,显示找不到libmysqlclient.so,并报错多个未定义的引用。

解决方案:首先找到系统中原来的libmysqlclient.so文件所在路径,然后将/usr/local/mysql/lib/libmysqlclient.*复制到前述路径中,即可。

另外,如果可能在lib文件夹,也可能在lib64文件夹下。

@tiffanyXiaoqing
Copy link

  1. centos6下使用mysql5.6编译不通过,显示:
    CGImysql/sign.cpp:31: 错误:‘exit’在此作用域中尚未声明
    CGImysql/sign.cpp:38: 错误:‘exit’在此作用域中尚未声明
    CGImysql/sign.cpp:70: 错误:‘malloc’在此作用域中尚未声明

解决方案:在CGImysql/sign.cpp文件中,加入<stdlib.h >和<malloc.h>头文件即可。

@qinguoyi qinguoyi pinned this issue Jun 7, 2020
@zhenchengchang
Copy link

在./server 之后 log里面是MYSQL ERROR

@zhenchengchang
Copy link

./build.sh后 在makefile15行出现错误

@qinguoyi
Copy link
Owner Author

qinguoyi commented Jun 9, 2020

./build.sh后 在makefile15行出现错误

你好,请下载最新代码测试,注意修改数据库用户名、密码和库名称。

@forTribeforXuanmo
Copy link

代码可以在windows下面编译运行么。。

@qinguoyi
Copy link
Owner Author

您好,运行./server port 出现如下错误
![image](https://user-images.githubusercontent.com/43274426/84669219-338b3c80-af57-11ea-8357-34663def6c97.png

更换端口即可

@qinguoyi
Copy link
Owner Author

代码可以在windows下面编译运行么。。

听说windows下vs2017可以调试linux代码^_^.

@zhudong-cplusplus
Copy link

你好,我用的是centos7,按照你说的 yum install mysql-devel,前面步骤都一致,之后再sh ./build.sh,出现下列错误,想问一下什么原因?谢谢
/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
make: *** [server] Error 1

@liruixl
Copy link

liruixl commented Jul 3, 2020

社长你好,block_queue中 front() 方法的实现是否应该是:value = m_array[m_front + 1]; 而不是 value = m_array[m_front];

@xijunjun
Copy link

xijunjun commented Jul 7, 2020

Q院强啊,star都1k了!^_^

@ghost
Copy link

ghost commented Jul 8, 2020

在./server 之后 log里面是MYSQL ERROR

我也是这个,怎么解决鸭

@haoqipaopao
Copy link

haoqipaopao commented Jul 29, 2020

你好,我用的是centos7,按照你说的yum install mysql-devel,前面步骤都一致,之后再sh ./build.sh,出现以下错误,想问一下什么原因?谢谢
/ bin / ld:不能查找-lmysqlclient
collect2:错误:ld返回1退出状态
make:*** [服务器]错误1

这个错误,我也遇到了,现在解决了。解决方式是,先安装lnmp(安装命令是wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp)。然后在Makefile里面添加上mysql的lib和include的路径
...
lib_path = -L/usr/local/mysql/lib/
header_path = -I/usr/local/mysql/include/
CFLAGS=$(lib_path) $(header_path)

server: main.cpp ./timer/lst_timer.cpp ./http/http_conn.cpp ./log/log.cpp ./CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp
$(CXX) $(CFLAGS) -o server $^ $(CXXFLAGS) -lpthread -lmysqlclient
...

@zeroflycui
Copy link

在./server 之后 log里面是MYSQL ERROR

我也是这个,怎么解决鸭

同是这个问题呀?请问解决了吗?

@evahere
Copy link

evahere commented Aug 4, 2020

你好,我用的是centos7,按照你说的yum install mysql-devel,前面步骤都一致,之后再sh ./build.sh,出现以下错误,想问一下什么原因?谢谢
/ bin / ld:不能查找-lmysqlclient
collect2:错误:ld返回1退出状态
make:*** [服务器]错误1

这个错误,我也遇到了,现在解决了。解决方式是,先安装lnmp(安装命令是wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp)。然后在Makefile里面添加上mysql的lib和include的路径
...
lib_path = -L/usr/local/mysql/lib/
header_path = -I/usr/local/mysql/include/
CFLAGS=$(lib_path) $(header_path)

server: main.cpp ./timer/lst_timer.cpp ./http/http_conn.cpp ./log/log.cpp ./CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp
$(CXX) $(CFLAGS) -o server $^ $(CXXFLAGS) -lpthread -lmysqlclient
...

不用这么麻烦 安装完 libmysqlclient-dev 或者 mysql-devel之后 那个.so文件在/usr/lib64/mysql目录下 添加环境变量就好 export LIBRARY_PATH=/usr/lib/mysql 这样gcc/g++就可以搜索到这个目录下的文件了 安装lnmp真的太久了哈哈

@indigohana
Copy link

在./server 之后 log里面是MYSQL ERROR

我也是这个,怎么解决鸭

同是这个问题呀?请问解决了吗?

同问+1

@aiyolo
Copy link

aiyolo commented Aug 14, 2020

@indigohana @zeroflycui @feyno
我猜你也是被readme误导了,main.cpp的用户名和密码是登陆mysql用到的用户名和密码(也就是mysql -u root -p 所对应的),不是建表建的那个,修改一下,然后重新编译应该就没问题了

@zhangm365
Copy link

之前在虚拟机上安装的 ubuntu 可以运行。现在使用 docker 创建的 ubuntu 镜像可以编译成功,但是浏览器无法访问网站,这是为什么呀

mac 主机好像和 docker 上的虚拟机本来ping不通

@13016071326
Copy link

您好,请问编译webbench出现这个是什么问题啊
屏幕截图 2023-03-17 144041

@HenryZ94264
Copy link

HenryZ94264 commented Mar 19, 2023

大佬您好,我想问个问题。在看您的《Linux高性能服务器编程》的时候,9.3.4的EPOLLONESHOT事件中,我跟着实现了一遍代码。服务端运行的时候,我在客户端使用telnet连接服务器,然后发送数据给服务器,服务器能够接受并输出发送的数据。但是在新线程为sockfd服务完以后,epoll_wait的返回值就变为-1了,然后整个服务端程序就停止了。输出了一下errno的错误信息,返回的是

Interrupted system call

请问这是正常现象吗?因为书中没有提到过会出现这样的情况。

@Maowazi6
Copy link

大佬您好,我想问个问题。在看您的《Linux高性能服务器编程》的时候,9.3.4的EPOLLONESHOT事件中,我跟着实现了一遍代码。服务端运行的时候,我在客户端使用telnet连接服务器,然后发送数据给服务器,服务器能够接受并输出发送的数据。但是在新线程为sockfd服务完以后,epoll_wait的返回值就变为-1了,然后整个服务端程序就停止了。输出了一下errno的错误信息,返回的是

Interrupted system call

请问这是正常现象吗?因为书中没有提到过会出现这样的情况。

应该是产生中断了了,你要自行定义个函数忽略这个中断好像是产生了一个EINTR的error信号加上 if (fds[i] < 0) {
continue;
}试试

@meiony
Copy link

meiony commented May 2, 2023

您好,请问编译webbench出现这个是什么问题啊 屏幕截图 2023-03-17 144041

在make之前执行下make clean

@Kitebin-h
Copy link

你好 ,编译使用sh ./build.sh编译时,报如下的错误:
image
本人的云服务器环境:

  • CentOS Linux release 7.9.2009 (Core) x86_64
  • mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

本人尝试使用yum install mysql-devel,不过没有什么效果,网上也没有找到较好的解决方案,来提个issue问问站长如何解决.

@nana0739ice
Copy link

我在macos上的vscode里跑,一直提示头文件"sys/epoll.h"找不到,另外还有两个头文件“http_conn/http_conn.h”, "threadpool/threadpool.h"也是一样,请问这个项目能在macos系统上跑吗?

@hi-vi
Copy link

hi-vi commented Jul 18, 2023

新手小白求指教,终端运行没问题,9006端口也通过防火墙打开了,但是网页一直打不开,请问这是什么原因呢,跪谢大佬!!!
image
image

@zengxiangliai
Copy link

你好 ,编译使用sh ./build.sh编译时,报如下的错误: image 本人的云服务器环境:

  • CentOS Linux release 7.9.2009 (Core) x86_64
  • mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

本人尝试使用yum install mysql-devel,不过没有什么效果,网上也没有找到较好的解决方案,来提个issue问问站长如何解决.

改下makefile里 -lmysqlclient里路径

@ShaocongGuo
Copy link

ShaocongGuo commented Jul 27, 2023

你好 ,编译使用sh ./build.sh编译时,报如下的错误: image 本人的云服务器环境:

  • CentOS Linux release 7.9.2009 (Core) x86_64
  • mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

本人尝试使用yum install mysql-devel,不过没有什么效果,网上也没有找到较好的解决方案,来提个issue问问站长如何解决.

尝试执行 sudo ln -sv /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so ,在CentOS 7.9.2009,MySQL 5.7.42上测试有效
详情可参考 https://blog.csdn.net/u013255206/article/details/65626852

@HKQX
Copy link

HKQX commented Jul 29, 2023

image
image
编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答
image

@HKQX
Copy link

HKQX commented Jul 29, 2023

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

补充一下,改过mysql的密码了,改成root或者是自己的密码都不行,权限设置为外部连接也出错,不知道问题出在哪里了TAT

@ShaocongGuo
Copy link

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

补充一下,改过mysql的密码了,改成root或者是自己的密码都不行,权限设置为外部连接也出错,不知道问题出在哪里了TAT

建议首先用Navicat等外部工具测试一下是否能正常连接,其次尝试一下将代码中数据库地址的"localhost"改成"127.0.0.1"或者IP地址试试。

@HKQX
Copy link

HKQX commented Jul 30, 2023

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

补充一下,改过mysql的密码了,改成root或者是自己的密码都不行,权限设置为外部连接也出错,不知道问题出在哪里了TAT

建议首先用Navicat等外部工具测试一下是否能正常连接,其次尝试一下将代码中数据库地址的"localhost"改成"127.0.0.1"或者IP地址试试。

问题已解决,后重新创建一个test文件,利用MysqlAPi连接可以成功,结果发现可以连接,但是发现找不到yourdb,以为是版本问题,因为window连接当时成功了(连接的是window的mysql了),后续发现连接错后尝试使用datagrip继续连接Ubuntu上的mysql,但是连接测试不上,以为是ip问题,设置为静态ip后,并且创建了一个新账户,给予%权限即可测试连接成功,现经过编译已经可以正常运行,综上

@HKQX
Copy link

HKQX commented Jul 30, 2023

压测QPS最高只能68000多 是我配置不行吗 CPU i7-12700 虚拟机分配了单处理器 8核,16G内存 20Gssd(不是很懂,求大佬指正)附配置图
image
image

@jjkhl
Copy link

jjkhl commented Sep 6, 2023

项目启动成功,但是浏览器输入一直显示。该网页无法正常运作 image 然后后台显示close 16。close 17。 image telnet 是通的 image

请问是什么问题呢?
老哥后面有解决吗?我也遇到close 16的问题。我是单独把执行文件拿出来运行,然后网页端连接就报错。但是把所有文件放在一起又没问题了。我看了下日志,好像报错是因为http连接不成功,但是不太清楚如何修改。

@weic6
Copy link

weic6 commented Oct 3, 2023

我在macos上的vscode里跑,一直提示头文件"sys/epoll.h"找不到,另外还有两个头文件“http_conn/http_conn.h”, "threadpool/threadpool.h"也是一样,请问这个项目能在macos系统上跑吗?

请问后来你跑成功了吗

@xingch123456789
Copy link

屏幕截图 2023-10-16 200149

我运行./server后日志输出这个,然后要怎么做

@wangdahao-wh
Copy link

之前在虚拟机上安装的 ubuntu 可以运行。现在使用 docker 创建的 ubuntu 镜像可以编译成功,但是浏览器无法访问网站,这是为什么呀

可以使用 docker-mac-connect 可以实现Mac docker容器 互ping

@zhaoting-git
Copy link

屏幕截图 2023-10-16 200149 我运行./server后日志输出这个,然后要怎么做

你解决了吗?我也遇到这个问题了,网页那边响应时间过长,两边网络都ping不通

@hshandyj
Copy link

hshandyj commented Dec 9, 2023

大佬想问一下,我在centos虚拟机上运行服务器,端口开放了,防火墙也关了,但还是只有我本机能连服务器,别的电脑都连不了,这个是为什么呢

@JasonGuo1
Copy link

大佬们 ./server正常运行 但是输入网址之后显示 You do not have permission to get file form this server. 怎么办,用的是ubuntu

修改一下root目录的权限 chmod -R root 777 就可以正常访问了

chmod -R 777 root

@guotuLuo
Copy link

项目启动成功,但是浏览器输入一直显示。该网页无法正常运作 image 然后后台显示close 16。close 17。 image telnet 是通的 image
请问是什么问题呢?
老哥后面有解决吗?我也遇到close 16的问题。我是单独把执行文件拿出来运行,然后网页端连接就报错。但是把所有文件放在一起又没问题了。我看了下日志,好像报错是因为http连接不成功,但是不太清楚如何修改。

老哥你改成功了吗

@guotuLuo
Copy link

我也是这个我问题

@guotuLuo
Copy link

已解决,换端口为9000成功,9006网页端打不开,log日志报错unkow header,另外注意raw-version下的http_conn.cpp 里面的root路径要对,mysql服务器的配置要对

@BBIGCat111
Copy link

大佬们,为啥我一运行sh ./build.sh的时候,报这个错:
image
image
很长一串,人快疯了

@BBIGCat111
Copy link

大佬们,为啥我一运行sh ./build.sh的时候,报这个错: image image 很长一串,人快疯了

靠,我把阿里云的服务器的操作系统从centos换成ubuntule,现在可以了。。。。

@Leiber-CivilComEngineer
Copy link

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

image image 编译没有问题,一运行就报错MySQL Error,根据issue查出错误代码是0,但是没找到合适的解决方案,系统是ubuntu18,mysql版本是5.7.42,求大佬解答 image

补充一下,改过mysql的密码了,改成root或者是自己的密码都不行,权限设置为外部连接也出错,不知道问题出在哪里了TAT

建议首先用Navicat等外部工具测试一下是否能正常连接,其次尝试一下将代码中数据库地址的"localhost"改成"127.0.0.1"或者IP地址试试。

问题已解决,后重新创建一个test文件,利用MysqlAPi连接可以成功,结果发现可以连接,但是发现找不到yourdb,以为是版本问题,因为window连接当时成功了(连接的是window的mysql了),后续发现连接错后尝试使用datagrip继续连接Ubuntu上的mysql,但是连接测试不上,以为是ip问题,设置为静态ip后,并且创建了一个新账户,给予%权限即可测试连接成功,现经过编译已经可以正常运行,综上

已解决:编译没有问题,一运行就报错MySQL Error
原因超级超级简单,文档中提到的构建数据库时在user表内添加name和password,和main.cpp中要修改的user和password不是一个东西!!!
image

main.cpp中的user和和password是你在命令行使用sudo mysql -u root -p命令对应的用户名和密码,假如你的密码是123123,那么你应该把main.cpp中的user改为root,把password改为123123。

@awerqws
Copy link

awerqws commented Mar 11, 2024

日志里出现time tick要怎么解决阿

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests