前天和昨天折腾了好久阿里云的服务器,各种用的不爽,最后还是强行给装了大蜥蜴42.2。今天主要折腾了一下数据库的初始化,以及尝试通过MySQL Connector/C++连接到数据库上。
简单参考了这篇教程:http://blog.csdn.net/tiaotiaoyly/article/details/5174772
首先安装好nginx, php5-fpm, php5-mbstring, php5-mysql, mariadb这几个包,然后写好nginx配置文件,把phpMyAdmin开起来。然后装mariadb,启动之后运行mysql_secure_installation脚本,就可以在phpMyAdmin里访问了。当然,推荐把HTTPS也开起来,阿里云和腾讯云有免费证书可以申请,也不费事。
然后开始在本机搞事情,安装libmysqlcppconn-devel这个包,里面包含了连接MySQL所需要的库和头文件,boost的依赖似乎没写进去,还要手动安装一下boost_1_63-devel这个包。
我的数据库长这个样子,
MariaDB [test]> select * FROM Books; +--------------------+-------+---------+-------+ | Name | Price | ISBN | Count | +--------------------+-------+---------+-------+ | 自动日山原理 | 99.8 | 1213141 | 999 | | 自动CI原理 | 97.2 | 12333 | 1 | +--------------------+-------+---------+-------+ 2 rows in set (0.04 sec)
然后写一段小程序:
#include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/statement.h> using namespace sql; using namespace std; void RunConnectMySQL() { mysql::MySQL_Driver *driver; Connection *con; Statement *state; ResultSet *result; // 初始化驱动 driver = sql::mysql::get_mysql_driver_instance(); // 建立链接 con = driver->connect("tcp://ali.himmel.tech", "test", "nozomiDaisuki"); state = con->createStatement(); state->execute("use test"); state -> execute("INSERT INTO Books (Name, ISBN, Price, Count) VALUES ('自动打Call原理' , 80211, 199.8, 2999)"); // 查询 result = state->executeQuery("select * from Books"); // 输出查询 while(result->next()) { cout << result -> getString("Name") << " : $" << result -> getDouble("Price") << endl; } state -> execute("DELETE FROM Books WHERE Name = '自动打Call原理'"); delete state; delete con; } int main() { RunConnectMySQL(); return 0; }
注意执行命令有三种,一种是只返回成功与否的execute,一种是返回改变行数的executeUpdate,以及返回一个查询列表的executeQuerry。
所以说,基本上还是用SQL语句,SQL不好好学学可不行……
/home/test/GP/sqltest/cmake-build-debug/sqltest 自动日山原理 : $99.8 自动CI原理 : $97.2 自动打Call原理 : $199.8 Process finished with exit code 0
然后这是返回值,下一步要设计一下数据库喽。