主要内容:由于Redhat是离线的,所以程序部署时,boost,qt,数据库都需要离线安装。这里记录一下离线部署的过程,便于复现。
系统版本:RedHat 7.0 (Red Hat 4.8.2-16) (GCC) )
(使用cat /proc/version
查询版本)
1 MySQL数据库离线安装(RPM)
1.1 下载二进制安装包
下载地址:https://dev.mysql.com/downloads/mysql/
打开官网,找到如下页面:
翻到下面,按照系统版本选择:
我直接下载了第一个
RPM Bundl
,包含了基本上所有要用的东西。
1.2 安装
安装前先检查是否已经安装了MySQL,如果已经安装了,先将现有版本卸载:
[root@worker1 tmp]# rpm -qa|grep mysql
mysql-libs-5.1.71-1.el6.x86_64
[root@worker1 tmp]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 //卸载
解压下载的文件:
[root@worker1 tmp]# tar -xf mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar
按顺序安装以下文件:
1. rpm -ivh mysql-community-common-5.7.12-1.el6.x86_64.rpm
2. rpm -ivh mysql-community-libs-5.7.12-1.el6.x86_64.rpm
3. rpm -ivh mysql-community-devel-5.7.12-1.el6.x86_64.rpm
4. rpm -ivh mysql-community-client-5.7.12-1.el6.x86_64.rpm
5. rpm -ivh mysql-community-server-5.7.12-1.el6.x86_64.rpm
如果提示ID校验的警告,则在每一条指令后面加上--force --nodeps
强制安装即可。
1.3 环境变量设置
- 1 启动MySQL
service mysqld start
- 2 登录:mysql -u root -p,初次登录密码为空,直接回车:
mysql -u root -p
这里会出现一个错误。原因是因为MySQL5.7中的mysql.user 表中没有Password字段,所以要以安全方式登录,然后修改密码。
解决方法如下:
修改MySQL配置文件:vim /etc/my.cnf
,在文件末尾加上:skip-grant-tables
,保存后重启MySQL服务:service mysqld restart
,然后重新登录。
- 3 修改密码,用户密码是在名为mysql的database下面:
依次执行以下指令:
mysql> use mysql
mysql> update user set password_expired='N' where user='root’;
mysql> update user set authentication_string=password('123456') where user=‘root’;
mysql> flush privileges;
将my.cnf配置文件之前加的跳过密码检测内容去掉,重启服务;
需要注意的是,高版本的MySQL不允许设置过于简单的密码,如果报错很可能就是这个原因。
1.4 导入数据库
CREATE USER 'www'@'localhost' IDENTIFIED BY '111111';
grant all on . to 'www'@'localhost';//授权
create database sc_switchingroom;
use sc_switchingroom ;
source sc_ switchingroom.sql;
需要注意的是,高版本的MySQL不允许设置过于简单的密码,如果报错很可能就是这个原因。
2 安装MySQL Connector for C++ linux
2.1 下载安装包
下载地址:https://dev.mysql.com/downloads/connector/cpp/
像上面一个,选择对应的系统版本,下载压缩包格式的文件:
2.2 安装
- 1 解压压缩包
- 2 复制lib
cd lib
sudo cp * /usr/lib/
- 3 复制include
cd include
sudo cp -r * /usr/include/
- 4 使设置生效
cd /etc/
sudo ldconfig
这里可能会提示libmysqlcppconn.so.7
相关的错误。
解决的办法是重新定位软连接:
ln -sf libmysqlcppconn.so.7.1.1.9 libmysqlcppconn.so.7
3 定位MySQL库文件所在位置
mysql_config --libs
这个在编译程序的时候会用得到,因为会发生libmysqlclient.so.20
找不到的情况,这个时候需要指定该目录。
4 boost安装
参考Boost.Asio——(1)安装及配置
不同的是:
第一步,执行sudo ./bootstrap.sh
第二步相同,我编译了所有库,执行:sudo ./bjam
注意可能需要添加给文件可执行权限,可以直接右键在属性中修改。