1、下載mysql-connector-c++版本要選對mysql
2、解壓後目錄結構以下ios
:/mybk/mysql-connector-c++-1.1.7-linux-glibc2.5-x86-64bit$ tree . ├── ANNOUNCEMENT ├── COPYING ├── include │ ├── cppconn │ │ ├── build_config.h │ │ ├── config.h │ │ ├── connection.h │ │ ├── datatype.h │ │ ├── driver.h │ │ ├── exception.h │ │ ├── metadata.h │ │ ├── parameter_metadata.h │ │ ├── prepared_statement.h │ │ ├── resultset.h │ │ ├── resultset_metadata.h │ │ ├── sqlstring.h │ │ ├── statement.h │ │ ├── variant.h │ │ ├── version_info.h │ │ └── warning.h │ ├── mysql_connection.h │ ├── mysql_driver.h │ └── mysql_error.h ├── INSTALL ├── lib │ ├── libmysqlcppconn.so -> libmysqlcppconn.so.7 │ ├── libmysqlcppconn.so.7 -> libmysqlcppconn.so.7.1.1.7 │ ├── libmysqlcppconn.so.7.1.1.7 │ └── libmysqlcppconn-static.a ├── Licenses_for_Third-Party_Components.txt └── README
把include和lib(連同文件及下面的全部子目錄)拷入mysql server的安裝目錄(這裏是/opt/mysql)下對應的include和libc++
拷好後/opt/mysql/include和/opt/mysql/lib以下:sql
$ tree /opt/mysql/include/ /opt/mysql/include/ ├── big_endian.h ├── binary_log_types.h ├── byte_order_generic.h ├── byte_order_generic_x86.h ├── cppconn │ ├── build_config.h │ ├── config.h │ ├── connection.h │ ├── datatype.h │ ├── driver.h │ ├── exception.h │ ├── metadata.h │ ├── parameter_metadata.h │ ├── prepared_statement.h │ ├── resultset.h │ ├── resultset_metadata.h │ ├── sqlstring.h │ ├── statement.h │ ├── variant.h │ ├── version_info.h │ └── warning.h ├── decimal.h ├── errmsg.h ├── keycache.h ├── little_endian.h ├── m_ctype.h ├── m_string.h ├── my_alloc.h ├── my_byteorder.h ├── my_command.h ├── my_compiler.h ├── my_config.h ├── my_dbug.h ├── my_dir.h ├── my_getopt.h ├── my_global.h ├── my_list.h ├── mysql │ ├── client_authentication.h │ ├── client_plugin.h │ ├── client_plugin.h.pp │ ├── com_data.h │ ├── get_password.h │ ├── group_replication_priv.h │ ├── innodb_priv.h │ ├── mysql_lex_string.h │ ├── plugin_audit.h │ ├── plugin_audit.h.pp │ ├── plugin_auth_common.h │ ├── plugin_auth.h │ ├── plugin_auth.h.pp │ ├── plugin_ftparser.h │ ├── plugin_ftparser.h.pp │ ├── plugin_group_replication.h │ ├── plugin.h │ ├── plugin_trace.h │ ├── plugin_validate_password.h │ ├── psi │ │ ├── mysql_file.h │ │ ├── mysql_idle.h │ │ ├── mysql_mdl.h │ │ ├── mysql_memory.h │ │ ├── mysql_ps.h │ │ ├── mysql_socket.h │ │ ├── mysql_sp.h │ │ ├── mysql_stage.h │ │ ├── mysql_statement.h │ │ ├── mysql_table.h │ │ ├── mysql_thread.h │ │ ├── mysql_transaction.h │ │ ├── psi_base.h │ │ ├── psi.h │ │ └── psi_memory.h │ ├── service_command.h │ ├── service_locking.h │ ├── service_my_plugin_log.h │ ├── service_my_snprintf.h │ ├── service_mysql_alloc.h │ ├── service_mysql_password_policy.h │ ├── service_mysql_string.h │ ├── service_parser.h │ ├── service_rpl_transaction_ctx.h │ ├── service_rpl_transaction_write_set.h │ ├── service_rules_table.h │ ├── service_security_context.h │ ├── services.h │ ├── services.h.pp │ ├── service_srv_session.h │ ├── service_srv_session_info.h │ ├── service_thd_alloc.h │ ├── service_thd_engine_lock.h │ ├── service_thd_wait.h │ ├── service_thread_scheduler.h │ ├── thread_pool_priv.h │ └── thread_type.h ├── mysql_com.h ├── mysql_com_server.h ├── mysql_connection.h ├── mysqld_ername.h ├── mysqld_error.h ├── mysql_driver.h ├── mysql_embed.h ├── mysql_error.h ├── mysql.h ├── mysql_time.h ├── mysql_version.h ├── my_sys.h ├── my_thread.h ├── my_thread_local.h ├── my_xml.h ├── plugin_audit.h ├── plugin_ftparser.h ├── plugin_group_replication.h ├── plugin.h ├── plugin_validate_password.h ├── sql_common.h ├── sql_state.h ├── sslopt-case.h ├── sslopt-longopts.h ├── sslopt-vars.h ├── thr_cond.h ├── thr_mutex.h ├── thr_rwlock.h └── typelib.h $ tree /opt/mysql/lib /opt/mysql/lib ├── libmysqlclient.a ├── libmysqlclient_r.so -> libmysqlclient.so.20.0.9 ├── libmysqlclient.so -> libmysqlclient.so.20 ├── libmysqlclient.so.20 -> libmysqlclient.so.20.0.9 ├── libmysqlclient.so.20.0.9 ├── libmysqlcppconn.so -> libmysqlcppconn.so.7 ├── libmysqlcppconn.so.7 -> libmysqlcppconn.so.7.1.1.7 ├── libmysqlcppconn.so.7.1.1.7 ├── libmysqlcppconn-static.a ├── libmysqld.a ├── libmysqld-debug.a ├── libmysqlservices.a ├── libtcmalloc_minimal.so ├── libtcmalloc_minimal.so.0 -> libtcmalloc_minimal.so . . .
3、代碼session
test2.cppsocket
/* * g++ test2.cpp -o test2 -I/opt/mysql/include -L/opt/mysql/lib -lmysqlcppconn -Wl,-rpath=/opt/mysql/lib * * */ #include <iostream> #include <stdlib.h> using namespace std; #include <mysql_connection.h> #include <mysql_driver.h> #include <mysql_error.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> using namespace sql; #define URL "tcp://127.0.0.1:3306" #define USER "your-usr" #define PASSWORD "your-pass" int main() { try { Driver *driver = get_driver_instance(); Connection *conn = driver->connect(URL, USER, PASSWORD); Statement * stmt = conn->createStatement(); stmt->execute("SET NAMES utf8"); stmt->execute("USE you-database"); ResultSet * resultSet = stmt->executeQuery("select * from you-table"); //改成你的庫和表 int col_count=resultSet->getMetaData()->getColumnCount(); while (resultSet->next()) { for(int col=1;col<=col_count;col++) cout << "'" << resultSet->getString(col) << "' "; cout<<endl; } conn->close(); delete stmt; delete conn; } catch (SQLException &e) { cout << "# ERR: " << e.what(); cout << " (MySQL error code: " << e.getErrorCode(); cout << ", SQLState: " << e.getSQLState() << " )" << endl; return EXIT_FAILURE; } catch (std::runtime_error &e) { cout << "# ERR: " << e.what() << endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }
4、編譯tcp
代碼最開始的註釋部分,固然若是系統的動態庫搜索路徑中包含了/opt/mysql/lib則下面內容能夠省去ui
-Wl,-rpath=/opt/mysql/lib
5、源碼編譯安裝。spa
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCMAKE_BUILD_TYPE:STRING=Debug -DMYSQL_CONFIG_EXECUTABLE:FILEPATH=/opt/mysql/bin/mysql_config .
$make
$sudo make installl