IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux操作系统下复现github上的项目(二):项目的正常运行 -> 正文阅读

[系统运维]Linux操作系统下复现github上的项目(二):项目的正常运行

一、确认环境正确安装

首先确认Mysql数据库已安装

第一篇里讲到,killall mysqld并且重新service mysqld start 之后,可以正常 starting MYSQL [ok]
但是还有问题依旧没有解决:不能通过mysql .sock连接MySQL问题
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
解决 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)的方法
期间出现bash: mysqld_safe: command not found 解决方法

总结上面的解决方法:(有可能是mysql的初始密码问题)

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 
#出现的问题是不能通过 ‘/tmp/mysql .sock’连到服务器,一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql.sock下,所以两者所以软连接一下

/etc/init.d/mysqld stop ##1.停止mysql数据库

mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #忘记密码时跳过授权表启动

ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin 
#由于出现报错bash: mysqld_safe: command not found,查看了一下mysqld_safe在/usr/local/mysql/bin/mysqld_safe下,但是系统默认会查找/usr/bin下的命令,所以两者软连接一下。

mysqld_safe --user=mysql --skip-grant-tables --skip-networking & #再重新尝试忘记密码时跳过授权表启动
mysql -u root mysql#无密码登录数据库

#mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';#更新root密码
#报错ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
#最新版MySQL请采用如下SQL:
#mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
#报错ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column,理由是mysql在safe-updates模式中,如果你where后跟的条件不是主键id,那么就会出现这种错误。
SET SQL_SAFE_UPDATES = 0;#执行该命令更改mysql数据库模式
mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;#刷新权限 

mysql> quit;#退出mysql

/etc/init.d/mysqld restart#重启mysql

#8.使用root用户重新登录mysql
mysql -uroot -p 
Enter password: <输入新设的密码newpassword>
————————————————
以上需要特别注意的地方是,mysql默认结束标志是分号;输入完一条sql命令后加上分号回车才执行

解决完问题后,确认已正确安装MySQL数据库
在这里插入图片描述

然后修改main.cpp数据库中的初始信息
//需要修改的数据库信息,登录名,密码,库名

string user = "root";
string passwd = "root";
string databasename = "mydb";

(vim插入模式i ,退出插入模式ESC或者ctrl+[ )

二、项目位置的确认和运行

TinyWebServer被我放到了/home/admin/.ssh下,执行sh ./build.sh

问题一:
在这里插入图片描述

和第一篇里一样的错误。linux下解决make: g++: Command not
found

原因是缺少组件导致的,执行yum search "gcc-c++"查询缺少组件的版本,不同的操作系统版本可能会不一样,切换到root用户,执行yum install "gcc-c++.x86_64" -y安装对应版本的组件。

问题二:

g++ -o server  main.cpp timer/lst_timer.cpp http/http_conn.cpp log/log.cpp CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp -g -lpthread -lmysqlclient
In file included from ./threadpool/threadpool.h:9:0,
                 from webserver.h:15,
                 from config.h:4,
                 from main.cpp:1:
./threadpool/../CGImysql/sql_connection_pool.h:6:25: fatal error: mysql/mysql.h: No such file or directory
 #include <mysql/mysql.h>
                         ^
compilation terminated.
make: *** [server] Error 1

是因为没有安装mysql的相关链接库,yum install mysql-devel

问题三:

g++ -o server  main.cpp timer/lst_timer.cpp http/http_conn.cpp log/log.cpp CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp -g -lpthread -lmysqlclient
/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
make: *** [server] Error 1

就是在系统中找不到libmysqlclient.so文件

解决/usr/bin/ld: cannot find -l****
问题的解决办法

中间出现-bash: locate: command not
found

/usr/bin/ld: cannot find -lxxx 的解决办法
添加动态链接库的搜索路径

首先locate mysqlclient,可以看到其实存在libmysqlclient.so,但是、/bin/ld找不到,所以
在这里插入图片描述
1.使用 /etc/ld.so.conf 配置文件将库文件所在路径添加到gcc的搜索路径,错误依旧

sudo echo ‘/usr/local/mysql/lib/’ >> /etc/ld.so.conf
#这步通过vim /etc/ld.so.conf,可以看到添加成功
sudo ldconfig
#运行该命令,重新载入 /ext/ld.so.conf 中的路径,使修改生效。 gcc -lmysqlclient --verbose #查询库文件libmysqlclient.so 是否能在搜索路径中找到。

在这里插入图片描述
2. ln -s建立软连接,错误依旧

 ln -s  /usr/bin/ld /usr/local/mysql/lib #尝试建立软连接,错误依旧

3.修改环境变量,成功

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/
#修改环境变量 LD_LIBRARY_PATH,加入库文件所在路径。使用 export 命令使修改生效。 
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/' >> ~/.bashrc
#将上述 export 命令加入到配置文件 ~/.bashrc 
source ~/.bashrc #使之永久生效。

#若以上尝试修改变量 LD_LIBRARY_PATH 不奏效,则修改变量 LIBRARY_PATH  
export LIBRARY_PATH=/usr/local/mysql/lib/:$LIBRARY_PATH 
echo 'export LIBRARY_PATH=/usr/local/mysql/lib/:$LIBRARY_PATH' >> ~/.bashrc 
source ~/.bashrc #使之永久生效。

目前执行sh ./build.sh
在这里插入图片描述
然后可以正常启动./server

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:35:20  更:2022-03-06 13:38:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:41:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码