mysql-connector-cpp | MySQL Connector/C is a MySQL database connector | Database library

 by   mysql C++ Version: Current License: Non-SPDX

kandi X-RAY | mysql-connector-cpp Summary

mysql-connector-cpp is a C++ library typically used in Database, MariaDB, Chef applications. mysql-connector-cpp has no bugs, it has no vulnerabilities and it has low support. However mysql-connector-cpp has a Non-SPDX License. You can download it from GitHub.
This is a release of MySQL Connector/C++, the C++ interface for communicating with MySQL servers. For detailed information please visit the official MySQL Connector/C++ documentation.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        mysql-connector-cpp has a low active ecosystem.
                        summary
                        It has 405 star(s) with 178 fork(s). There are 44 watchers for this library.
                        summary
                        It had no major release in the last 6 months.
                        summary
                        mysql-connector-cpp has no issues reported. There are no pull requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of mysql-connector-cpp is current.
                        mysql-connector-cpp Support
                          Best in #Database
                            Average in #Database
                            mysql-connector-cpp Support
                              Best in #Database
                                Average in #Database

                                  kandi-Quality Quality

                                    summary
                                    mysql-connector-cpp has 0 bugs and 0 code smells.
                                    mysql-connector-cpp Quality
                                      Best in #Database
                                        Average in #Database
                                        mysql-connector-cpp Quality
                                          Best in #Database
                                            Average in #Database

                                              kandi-Security Security

                                                summary
                                                mysql-connector-cpp has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                summary
                                                mysql-connector-cpp code analysis shows 0 unresolved vulnerabilities.
                                                summary
                                                There are 0 security hotspots that need review.
                                                mysql-connector-cpp Security
                                                  Best in #Database
                                                    Average in #Database
                                                    mysql-connector-cpp Security
                                                      Best in #Database
                                                        Average in #Database

                                                          kandi-License License

                                                            summary
                                                            mysql-connector-cpp has a Non-SPDX License.
                                                            summary
                                                            Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
                                                            mysql-connector-cpp License
                                                              Best in #Database
                                                                Average in #Database
                                                                mysql-connector-cpp License
                                                                  Best in #Database
                                                                    Average in #Database

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        mysql-connector-cpp releases are not available. You will need to build from source code and install.
                                                                        summary
                                                                        Installation instructions, examples and code snippets are available.
                                                                        summary
                                                                        It has 625 lines of code, 3 functions and 20 files.
                                                                        summary
                                                                        It has low code complexity. Code complexity directly impacts maintainability of the code.
                                                                        mysql-connector-cpp Reuse
                                                                          Best in #Database
                                                                            Average in #Database
                                                                            mysql-connector-cpp Reuse
                                                                              Best in #Database
                                                                                Average in #Database
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
                                                                                  Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
                                                                                  Get all kandi verified functions for this library.
                                                                                  Get all kandi verified functions for this library.

                                                                                  mysql-connector-cpp Key Features

                                                                                  MySQL Connector/C++ is a MySQL database connector for C++. It lets you develop C++ and C applications that connect to MySQL Server.

                                                                                  mysql-connector-cpp Examples and Code Snippets

                                                                                  No Code Snippets are available at this moment for mysql-connector-cpp.
                                                                                  Community Discussions

                                                                                  Trending Discussions on mysql-connector-cpp

                                                                                  error: 'res_ninit' was not declared in this scope; did you mean 'res_init'?
                                                                                  chevron right
                                                                                  C++/Cmake - Unable to compile MySQL Connector
                                                                                  chevron right
                                                                                  Qt5 MySQL driver not loaded - Windows
                                                                                  chevron right
                                                                                  Resolving Linker error MySQL Connector/C++
                                                                                  chevron right

                                                                                  QUESTION

                                                                                  error: 'res_ninit' was not declared in this scope; did you mean 'res_init'?
                                                                                  Asked 2021-Oct-07 at 11:00

                                                                                  I am trying to install an application from its source code in the alpine it says there is no res_ninit, res_nsearch and res_nclose but we can see here that do exists in the Linux headers and I have already installed apk add linux-headers, how can I resolve this issue?

                                                                                  make install
                                                                                  Consolidate compiler generated dependencies of target save_linker_opts
                                                                                  [  2%] Built target save_linker_opts
                                                                                  [  2%] Built target build_protobuf
                                                                                  Consolidate compiler generated dependencies of target cdk_foundation
                                                                                  [  3%] Building CXX object cdk/foundation/CMakeFiles/cdk_foundation.dir/socket_detail.cc.o
                                                                                  /dep/mysql-connector-cpp/cdk/foundation/socket_detail.cc: In function 'std::forward_list cdk::foundation::connection::detail::srv_list(const string&)':
                                                                                  /dep/mysql-connector-cpp/cdk/foundation/socket_detail.cc:1097:3: error: 'res_ninit' was not declared in this scope; did you mean 'res_init'?
                                                                                   1097 |   res_ninit(&state);
                                                                                        |   ^~~~~~~~~
                                                                                        |   res_init
                                                                                  /dep/mysql-connector-cpp/cdk/foundation/socket_detail.cc:1107:13: error: 'res_nsearch' was not declared in this scope; did you mean 'res_search'?
                                                                                   1107 |   int res = res_nsearch(&state, hostname.c_str(), ns_c_in, ns_t_srv, query_buffer, sizeof (query_buffer) );
                                                                                        |             ^~~~~~~~~~~
                                                                                        |             res_search
                                                                                  /dep/mysql-connector-cpp/cdk/foundation/socket_detail.cc:1143:3: error: 'res_nclose' was not declared in this scope
                                                                                   1143 |   res_nclose(&state);
                                                                                        |   ^~~~~~~~~~
                                                                                  make[2]: *** [cdk/foundation/CMakeFiles/cdk_foundation.dir/build.make:146: cdk/foundation/CMakeFiles/cdk_foundation.dir/socket_detail.cc.o] Error 1
                                                                                  make[1]: *** [CMakeFiles/Makefile2:1061: cdk/foundation/CMakeFiles/cdk_foundation.dir/all] Error 2
                                                                                  

                                                                                  Update: I cat the header file /usr/include/resolv.h and we can see that function does not exists, so the question is how can I set up Linux header like ubuntu that can work in the alpine?

                                                                                  #ifndef _RESOLV_H
                                                                                  #define _RESOLV_H
                                                                                  
                                                                                  #include 
                                                                                  #include 
                                                                                  #include 
                                                                                  
                                                                                  #ifdef __cplusplus
                                                                                  extern "C" {
                                                                                  #endif
                                                                                  
                                                                                  #define MAXNS           3
                                                                                  #define MAXDFLSRCH      3
                                                                                  #define MAXDNSRCH       6
                                                                                  #define LOCALDOMAINPARTS    2
                                                                                  
                                                                                  #define RES_TIMEOUT     5
                                                                                  #define MAXRESOLVSORT       10
                                                                                  #define RES_MAXNDOTS        15
                                                                                  #define RES_MAXRETRANS      30
                                                                                  #define RES_MAXRETRY        5
                                                                                  #define RES_DFLRETRY        2
                                                                                  #define RES_MAXTIME     65535
                                                                                  
                                                                                  /* unused; purely for broken apps */
                                                                                  typedef struct __res_state {
                                                                                      int retrans;
                                                                                      int retry;
                                                                                      unsigned long options;
                                                                                      int nscount;
                                                                                      struct sockaddr_in nsaddr_list[MAXNS];
                                                                                  # define nsaddr nsaddr_list[0]
                                                                                      unsigned short id;
                                                                                      char *dnsrch[MAXDNSRCH+1];
                                                                                      char defdname[256];
                                                                                      unsigned long pfcode;
                                                                                      unsigned ndots:4;
                                                                                      unsigned nsort:4;
                                                                                      unsigned ipv6_unavail:1;
                                                                                      unsigned unused:23;
                                                                                      struct {
                                                                                          struct in_addr addr;
                                                                                          uint32_t mask;
                                                                                      } sort_list[MAXRESOLVSORT];
                                                                                      void *qhook;
                                                                                      void *rhook;
                                                                                      int res_h_errno;
                                                                                      int _vcsock;
                                                                                      unsigned _flags;
                                                                                      union {
                                                                                          char pad[52];
                                                                                          struct {
                                                                                              uint16_t        nscount;
                                                                                              uint16_t        nsmap[MAXNS];
                                                                                              int         nssocks[MAXNS];
                                                                                              uint16_t        nscount6;
                                                                                              uint16_t        nsinit;
                                                                                              struct sockaddr_in6 *nsaddrs[MAXNS];
                                                                                              unsigned int        _initstamp[2];
                                                                                          } _ext;
                                                                                      } _u;
                                                                                  } *res_state;
                                                                                  
                                                                                  #define __RES   19960801
                                                                                  
                                                                                  #ifndef _PATH_RESCONF
                                                                                  #define _PATH_RESCONF        "/etc/resolv.conf"
                                                                                  #endif
                                                                                  
                                                                                  struct res_sym {
                                                                                      int number;
                                                                                      char *name;
                                                                                      char *humanname;
                                                                                  };
                                                                                  
                                                                                  #define RES_F_VC    0x00000001
                                                                                  #define RES_F_CONN  0x00000002
                                                                                  #define RES_F_EDNS0ERR  0x00000004
                                                                                  
                                                                                  #define RES_EXHAUSTIVE  0x00000001
                                                                                  
                                                                                  #define RES_INIT    0x00000001
                                                                                  #define RES_DEBUG   0x00000002
                                                                                  #define RES_AAONLY  0x00000004
                                                                                  #define RES_USEVC   0x00000008
                                                                                  #define RES_PRIMARY 0x00000010
                                                                                  #define RES_IGNTC   0x00000020
                                                                                  #define RES_RECURSE 0x00000040
                                                                                  #define RES_DEFNAMES    0x00000080
                                                                                  #define RES_STAYOPEN    0x00000100
                                                                                  #define RES_DNSRCH  0x00000200
                                                                                  #define RES_INSECURE1   0x00000400
                                                                                  #define RES_INSECURE2   0x00000800
                                                                                  #define RES_NOALIASES   0x00001000
                                                                                  #define RES_USE_INET6   0x00002000
                                                                                  #define RES_ROTATE  0x00004000
                                                                                  #define RES_NOCHECKNAME 0x00008000
                                                                                  #define RES_KEEPTSIG    0x00010000
                                                                                  #define RES_BLAST   0x00020000
                                                                                  #define RES_USEBSTRING  0x00040000
                                                                                  #define RES_NOIP6DOTINT 0x00080000
                                                                                  #define RES_USE_EDNS0   0x00100000
                                                                                  #define RES_SNGLKUP 0x00200000
                                                                                  #define RES_SNGLKUPREOP 0x00400000
                                                                                  #define RES_USE_DNSSEC  0x00800000
                                                                                  
                                                                                  #define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT)
                                                                                  
                                                                                  #define RES_PRF_STATS   0x00000001
                                                                                  #define RES_PRF_UPDATE  0x00000002
                                                                                  #define RES_PRF_CLASS   0x00000004
                                                                                  #define RES_PRF_CMD 0x00000008
                                                                                  #define RES_PRF_QUES    0x00000010
                                                                                  #define RES_PRF_ANS 0x00000020
                                                                                  #define RES_PRF_AUTH    0x00000040
                                                                                  #define RES_PRF_ADD 0x00000080
                                                                                  #define RES_PRF_HEAD1   0x00000100
                                                                                  #define RES_PRF_HEAD2   0x00000200
                                                                                  #define RES_PRF_TTLID   0x00000400
                                                                                  #define RES_PRF_HEADX   0x00000800
                                                                                  #define RES_PRF_QUERY   0x00001000
                                                                                  #define RES_PRF_REPLY   0x00002000
                                                                                  #define RES_PRF_INIT    0x00004000
                                                                                  
                                                                                  struct __res_state *__res_state(void);
                                                                                  #define _res (*__res_state())
                                                                                  
                                                                                  int res_init(void);
                                                                                  int res_query(const char *, int, int, unsigned char *, int);
                                                                                  int res_querydomain(const char *, const char *, int, int, unsigned char *, int);
                                                                                  int res_search(const char *, int, int, unsigned char *, int);
                                                                                  int res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
                                                                                  int res_send(const unsigned char *, int, unsigned char *, int);
                                                                                  int dn_comp(const char *, unsigned char *, int, unsigned char **, unsigned char **);
                                                                                  int dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
                                                                                  int dn_skipname(const unsigned char *, const unsigned char *);
                                                                                  
                                                                                  #ifdef __cplusplus
                                                                                  }
                                                                                  #endif
                                                                                  
                                                                                  #endif
                                                                                  

                                                                                  ANSWER

                                                                                  Answered 2021-Oct-07 at 11:00

                                                                                  in the Linux headers

                                                                                  Linux is generally/colloquially the name of all unix-ish operating systems with a Linux kernel, but specifically, Linux refers to the Linux kernel tiself. The resolve headers are not part of Linux kernel. linux-headers install headers needed to compile Linux kernel modules. It's unrelated.

                                                                                  The mentioned resolver headers are implemented inside glibc GNU C library. Alpine distribution uses musl implementation of C standard library, not glibc.

                                                                                  how can I resolve this issue?

                                                                                  One of:

                                                                                  • you can implement res_ninit and relevant function that depend on musl and use that implementation when compiling the application
                                                                                  • patch mysql-connector yourself to be compilable with musl
                                                                                  • compile/install glibc to your system and compile mysql-connector against it
                                                                                  • do not use alpine for programs that require glibc and use only glibc-compatibile Linux distribution
                                                                                  • notify mysql-connector developers about the issue and financially support them so they will fix the issue

                                                                                  Source https://stackoverflow.com/questions/69479642

                                                                                  QUESTION

                                                                                  C++/Cmake - Unable to compile MySQL Connector
                                                                                  Asked 2021-Aug-19 at 17:14

                                                                                  This is what I do:

                                                                                  git clone https://github.com/mysql/mysql-connector-cpp.git
                                                                                  

                                                                                  Than I do:

                                                                                  cd mysql-connector-cpp
                                                                                  git checkout 8.0
                                                                                  cmake .
                                                                                  

                                                                                  And than I receive the following output:

                                                                                  -- The C compiler identification is GNU 9.3.0
                                                                                  -- The CXX compiler identification is GNU 9.3.0
                                                                                  -- Check for working C compiler: /usr/bin/cc
                                                                                  -- Check for working C compiler: /usr/bin/cc -- works
                                                                                  -- Detecting C compiler ABI info
                                                                                  -- Detecting C compiler ABI info - done
                                                                                  -- Detecting C compile features
                                                                                  -- Detecting C compile features - done
                                                                                  -- Check for working CXX compiler: /usr/bin/c++
                                                                                  -- Check for working CXX compiler: /usr/bin/c++ -- works
                                                                                  -- Detecting CXX compiler ABI info
                                                                                  -- Detecting CXX compiler ABI info - done
                                                                                  -- Detecting CXX compile features
                                                                                  -- Detecting CXX compile features - done
                                                                                  -- Check if the system is big endian
                                                                                  -- Searching 16 bit integer
                                                                                  -- Looking for sys/types.h
                                                                                  -- Looking for sys/types.h - found
                                                                                  -- Looking for stdint.h
                                                                                  -- Looking for stdint.h - found
                                                                                  -- Looking for stddef.h
                                                                                  -- Looking for stddef.h - found
                                                                                  -- Check size of unsigned short
                                                                                  -- Check size of unsigned short - done
                                                                                  -- Using unsigned short
                                                                                  -- Check if the system is big endian - little endian
                                                                                  -- BIG_ENDIAN: 0
                                                                                  Building version 8.0.26
                                                                                  Building on system: Linux-5.11.0-27-generic (x86_64)
                                                                                  Using cmake generator: Unix Makefiles
                                                                                  Using toolset: 
                                                                                  Building 64bit code
                                                                                  Building shared connector library
                                                                                  Configuring CDK as part of MySQL_CONCPP project
                                                                                  -- Looking for SSL library.
                                                                                  CMake Error at cdk/cmake/DepFindSSL.cmake:79 (message):
                                                                                    Cannot find appropriate system libraries for SSL.  Make sure you've
                                                                                    specified a supported SSL version.  Consult the documentation for WITH_SSL
                                                                                    alternatives
                                                                                  Call Stack (most recent call first):
                                                                                    cdk/cmake/DepFindSSL.cmake:354 (main)
                                                                                    cdk/cmake/dependency.cmake:42 (include)
                                                                                    cdk/CMakeLists.txt:96 (find_dependency)
                                                                                  
                                                                                  
                                                                                  -- Setting up Protobuf.
                                                                                  ==== Configuring Protobuf build using cmake generator: Unix Makefiles   -DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_SYSTEM_VERSION=5.11.0-27-generic
                                                                                  -- The C compiler identification is GNU 9.3.0
                                                                                  -- The CXX compiler identification is GNU 9.3.0
                                                                                  -- Check for working C compiler: /usr/bin/cc
                                                                                  -- Check for working C compiler: /usr/bin/cc -- works
                                                                                  -- Detecting C compiler ABI info
                                                                                  -- Detecting C compiler ABI info - done
                                                                                  -- Detecting C compile features
                                                                                  -- Detecting C compile features - done
                                                                                  -- Check for working CXX compiler: /usr/bin/c++
                                                                                  -- Check for working CXX compiler: /usr/bin/c++ -- works
                                                                                  -- Detecting CXX compiler ABI info
                                                                                  -- Detecting CXX compiler ABI info - done
                                                                                  -- Detecting CXX compile features
                                                                                  -- Detecting CXX compile features - done
                                                                                  -- Check if the system is big endian
                                                                                  -- Searching 16 bit integer
                                                                                  -- Looking for sys/types.h
                                                                                  -- Looking for sys/types.h - found
                                                                                  -- Looking for stdint.h
                                                                                  -- Looking for stdint.h - found
                                                                                  -- Looking for stddef.h
                                                                                  -- Looking for stddef.h - found
                                                                                  -- Check size of unsigned short
                                                                                  -- Check size of unsigned short - done
                                                                                  -- Using unsigned short
                                                                                  -- Check if the system is big endian - little endian
                                                                                  -- BIG_ENDIAN: 0
                                                                                  -- Looking for pthread.h
                                                                                  -- Looking for pthread.h - found
                                                                                  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
                                                                                  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
                                                                                  -- Looking for pthread_create in pthreads
                                                                                  -- Looking for pthread_create in pthreads - not found
                                                                                  -- Looking for pthread_create in pthread
                                                                                  -- Looking for pthread_create in pthread - found
                                                                                  -- Found Threads: TRUE  
                                                                                  -- Performing Test protobuf_HAVE_BUILTIN_ATOMICS
                                                                                  -- Performing Test protobuf_HAVE_BUILTIN_ATOMICS - Success
                                                                                  -- Configuring done
                                                                                  -- Generating done
                                                                                  -- Build files have been written to: /home/armegon/mysql-connector-cpp/cdk/protobuf
                                                                                  ==== Protobuf build configured.
                                                                                  Processor Count: 8
                                                                                  -- Setting up RapidJSON.
                                                                                  Skipping second declaration of config option: THROW_AS_ASSERT (found in: /home/armegon/mysql-connector-cpp/cdk/CMakeLists.txt)
                                                                                  -- Performing Test HAVE_STATIC_ASSERT
                                                                                  -- Performing Test HAVE_STATIC_ASSERT - Success
                                                                                  -- Performing Test HAVE_IS_SAME
                                                                                  -- Performing Test HAVE_IS_SAME - Failed
                                                                                  -- Check size of off64_t
                                                                                  -- Check size of off64_t - done
                                                                                  -- Looking for fseeko
                                                                                  -- Looking for fseeko - found
                                                                                  -- Looking for unistd.h
                                                                                  -- Looking for unistd.h - found
                                                                                  -- ZSTD_LEGACY_SUPPORT not defined!
                                                                                  -- Performing Test HAVE_SHARED_PTR
                                                                                  -- Performing Test HAVE_SHARED_PTR - Success
                                                                                  -- Performing Test HAVE_SYSTEM_ERROR
                                                                                  -- Performing Test HAVE_SYSTEM_ERROR - Success
                                                                                  -- Check size of wchar_t
                                                                                  -- Check size of wchar_t - done
                                                                                  -- Looking for sys/endian.h
                                                                                  -- Looking for sys/endian.h - not found
                                                                                  -- Looking for sys/byteorder.h
                                                                                  -- Looking for sys/byteorder.h - not found
                                                                                  Wrote configuration header: /home/armegon/mysql-connector-cpp/cdk/include/mysql/cdk/config.h
                                                                                  Preparing to merge SHARED library: connector (xapi;devapi)
                                                                                  Connector library name: mysqlcppconn8
                                                                                  Building version 8.0.26
                                                                                  Generating INFO_SRC
                                                                                  Generating INFO_BIN
                                                                                  Install location: /usr/local/mysql/connector-c++-
                                                                                  Connector libraries will be installed at: lib64
                                                                                  
                                                                                  Project configuration options:
                                                                                  
                                                                                  : BUILD_STATIC: OFF
                                                                                  Build static version of connector library
                                                                                  
                                                                                  : WITH_SSL: system
                                                                                  Either 'system' to use system-wide OpenSSL library, or custom OpenSSL location. (default : system)
                                                                                  
                                                                                  : WITH_JDBC: OFF
                                                                                  Whether to build a variant of connector library which implements legacy JDBC API
                                                                                  
                                                                                  -- Configuring incomplete, errors occurred!
                                                                                  See also "/home/armegon/mysql-connector-cpp/CMakeFiles/CMakeOutput.log".
                                                                                  See also "/home/armegon/mysql-connector-cpp/CMakeFiles/CMakeError.log".
                                                                                  

                                                                                  The content of CMakeOutput.log is here and the content of CMakeError.log is here.

                                                                                  Any idea how can I fix this issue ?

                                                                                  ANSWER

                                                                                  Answered 2021-Aug-19 at 17:14

                                                                                  Never, ever do an in-source build. cmake . is always wrong. It even says so in the MySQL documentation: https://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-installation-source-cpp.html

                                                                                  This worked for me:

                                                                                  $ git clone --depth 1 --branch 8.0 https://github.com/mysql/mysql-connector-cpp.git
                                                                                  $ cmake -G "Unix Makefiles" -S mysql-connector-cpp -B mysql-connector-cpp-build -DCMAKE_BUILD_TYPE=Release
                                                                                  $ cmake --build mysql-connector-cpp-build
                                                                                  

                                                                                  It also looks like you're missing the SSL dependency. If you're running a Debian derivative (Ubuntu, Mint), you can install this with:

                                                                                  $ sudo apt install libssl-dev
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/68851944

                                                                                  QUESTION

                                                                                  Qt5 MySQL driver not loaded - Windows
                                                                                  Asked 2020-Dec-01 at 22:53

                                                                                  I want to connect to a MySQL database, only every time I try I get this error:

                                                                                  QSqlDatabase: QMYSQL driver not loaded
                                                                                  

                                                                                  I tried to install MariaDB-Connector-C and MySQL-Connector-Cpp, but neither of them worked, I also tried to copy the file libmariadb.lib in the application build folder but it still gives error and I don't know how to do it, in the driver installation files are missing files with extension .dll. I also tried to put the .lib files as libraries in the Qt project, but still nothing, it doesn't work, would you know how to fix it? Thank you.

                                                                                  Edit:

                                                                                  First I downloaded the MySql Connector for C from this link: https://downloads.mysql.com/archives/c-c/

                                                                                  After I executed these commands:

                                                                                  C:\Qt5\5.13.2\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Connector C 6.1/lib"
                                                                                  
                                                                                  mingw32-make
                                                                                  
                                                                                  mingw32-make install
                                                                                  

                                                                                  And now this comes out as a mistake:

                                                                                  QSqlDatabase: QMARIADB driver not loaded
                                                                                  QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
                                                                                  

                                                                                  ANSWER

                                                                                  Answered 2020-Dec-01 at 22:53

                                                                                  After I did everything I described in the edit I solved it. Basically I went to QtCreator, added a new library to the project (C:\Program Files\MySQL\MySQL Connector C 6.1\libmysql.lib) and now everything works properly!

                                                                                  Source https://stackoverflow.com/questions/65081802

                                                                                  QUESTION

                                                                                  Resolving Linker error MySQL Connector/C++
                                                                                  Asked 2020-Mar-28 at 16:55

                                                                                  I would like to be able to connect from my c++ program to a local MySQL instance, but the following minimal file testfile.cpp does not compile and returns undefined references:

                                                                                  #include     
                                                                                  using namespace ::mysqlx;
                                                                                  
                                                                                  int main()
                                                                                  {
                                                                                      printf("Hello world!\n");
                                                                                      return 0;
                                                                                  }
                                                                                  

                                                                                  I suspect to not use the right compile flags. When I use the command

                                                                                  c++ -o test1 -std=c++11 -lmysqlcppconn8 -I /usr/include/mysql-cppconn-8/ testfile.cpp 
                                                                                  

                                                                                  I am getting the following error messages (translated to English):

                                                                                  /tmp/cc02ZbBr.o: In the function "mysqlx::abi2::r0::string::traits::to_str[abi:cxx11](mysqlx::abi2::r0::string const&)":
                                                                                  testfile.cpp:(.text._ZN6mysqlx4abi22r06string6traitsIcE6to_strB5cxx11ERKS2_[_ZN6mysqlx4abi22r06string6traitsIcE6to_strB5cxx11ERKS2_]+0x2e): undefined reference to "mysqlx::abi2::r0::string::Impl::to_utf8[abi:cxx11](mysqlx::abi2::r0::string const&)"
                                                                                  /tmp/cc02ZbBr.o: In the function "mysqlx::abi2::r0::DbDoc::DbDoc()":
                                                                                  testfile.cpp:(.text._ZN6mysqlx4abi22r05DbDocC2Ev[_ZN6mysqlx4abi22r05DbDocC5Ev]+0x1b): undefined reference to "vtable for mysqlx::abi2::r0::DbDoc"
                                                                                  /tmp/cc02ZbBr.o: In the function "mysqlx::abi2::r0::DbDoc::~DbDoc()":
                                                                                  testfile.cpp:(.text._ZN6mysqlx4abi22r05DbDocD2Ev[_ZN6mysqlx4abi22r05DbDocD5Ev]+0xf): undefined reference to "vtable for mysqlx::abi2::r0::DbDoc"
                                                                                  /tmp/cc02ZbBr.o: In the function "mysqlx::abi2::r0::Value::print(std::ostream&) const":
                                                                                  testfile.cpp:(.text._ZNK6mysqlx4abi22r05Value5printERSo[_ZNK6mysqlx4abi22r05Value5printERSo]+0x88): undefined reference to "mysqlx::abi2::r0::common::Value::print(std::ostream&) const"
                                                                                  /tmp/cc02ZbBr.o:(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x18): undefined reference to "typeinfo for mysqlx::abi2::r0::common::Value"
                                                                                  /tmp/cc02ZbBr.o:(.data.rel.ro._ZTCN6mysqlx4abi22r05ValueE0_NS1_6common5ValueE[_ZTVN6mysqlx4abi22r05ValueE]+0x20): undefined reference to "mysqlx::abi2::r0::common::Value::print(std::ostream&) const"
                                                                                  /tmp/cc02ZbBr.o:(.data.rel.ro._ZTIN6mysqlx4abi22r05ValueE[_ZTIN6mysqlx4abi22r05ValueE]+0x28): undefined reference to "typeinfo for mysqlx::abi2::r0::common::Value"
                                                                                  collect2: error: ld returned 1 exit status
                                                                                  

                                                                                  The header from this file comes from a sample code on MySQL Connector/C++'s Github.

                                                                                  This question on SO seems relevant but the syntax/directories might be outdated. In any case, I do not know how to adjust the answers given there to my situation and location of libraries. Therefore I am asking for help here.

                                                                                  More information:
                                                                                  I'm running Linux Ubuntu 18.04, MySQL version 8.0.19 and have the following files in /usr/lib/x86_64-linux-gnu/

                                                                                  libmysqlcppconn.so  
                                                                                  libmysqlcppconn.so.7.8.0.19  
                                                                                  libmysqlcppconn.so.7  
                                                                                  

                                                                                  but I do not know how to refer to them.
                                                                                  In /usr/include/mysql-cppconn-8/ I have the directories jdbc/, mysql/ and mysqlx/.
                                                                                  I installed the following binary packages using the apt package manager: libmysqlcppconn-dev, libmysqlcppconn7, libmysqlcppconn8-1 and libmysqlcppconn8-2 (which is probably overkill but according to the installation guide one has to install quite a few of these libraries).

                                                                                  which mysql returns /usr/bin/mysql

                                                                                  ANSWER

                                                                                  Answered 2020-Mar-28 at 16:55

                                                                                  When you compile source files and link binaries with object files and libraries, the order does matter. Shared libraries providing exported symbols must follow object files and other shared libraries importing these symbols. In your case, the shared library must be placed in the end of the c++ command invitation:

                                                                                  c++ -o test1 -std=c++11 -I /usr/include/mysql-cppconn-8/ testfile.cpp  -lmysqlcppconn8
                                                                                  

                                                                                  The undefined symbols discovered after compiling testfile.cpp will be imported from the following libmysqlcppconn8.so. Linkers doesn't remember exported symbols from prior libraries. For more information read this nice article: Why does the order in which libraries are linked sometimes cause errors in GCC.

                                                                                  Source https://stackoverflow.com/questions/60903370

                                                                                  Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                  Vulnerabilities

                                                                                  No vulnerabilities reported

                                                                                  Install mysql-connector-cpp

                                                                                  MySQL Connector/C++ can be installed from pre-compiled packages that can be downloaded from the MySQL downloads page. The process of installing of Connector/C++ from a binary distribution is described in MySQL online manuals.

                                                                                  Support

                                                                                  MySQLConnector/C++ API Reference
                                                                                  Find more information at:
                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit
                                                                                  CLONE
                                                                                • HTTPS

                                                                                  https://github.com/mysql/mysql-connector-cpp.git

                                                                                • CLI

                                                                                  gh repo clone mysql/mysql-connector-cpp

                                                                                • sshUrl

                                                                                  git@github.com:mysql/mysql-connector-cpp.git

                                                                                • Share this Page

                                                                                  share link

                                                                                  Explore Related Topics

                                                                                  Reuse Pre-built Kits with mysql-connector-cpp

                                                                                  Consider Popular Database Libraries

                                                                                  redis

                                                                                  by redis

                                                                                  tidb

                                                                                  by pingcap

                                                                                  rethinkdb

                                                                                  by rethinkdb

                                                                                  cockroach

                                                                                  by cockroachdb

                                                                                  ClickHouse

                                                                                  by ClickHouse

                                                                                  Try Top Libraries by mysql

                                                                                  mysql-server

                                                                                  by mysqlC++

                                                                                  mysql-connector-j

                                                                                  by mysqlJava

                                                                                  mysql-workbench

                                                                                  by mysqlC++

                                                                                  mysql-operator

                                                                                  by mysqlPython

                                                                                  Compare Database Libraries with Highest Support

                                                                                  tidb

                                                                                  by pingcap

                                                                                  redis

                                                                                  by redis

                                                                                  ClickHouse

                                                                                  by ClickHouse

                                                                                  liquibase

                                                                                  by liquibase

                                                                                  rocksdb

                                                                                  by facebook

                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit