Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Selecting data from mysql using qt?

Selecting data from mysql using qt?

Scheduled Pinned Locked Moved General and Desktop
150 Posts 7 Posters 141.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? This user is from outside of this forum
    ? This user is from outside of this forum
    Guest
    wrote on 12 Oct 2010, 15:17 last edited by
    #133

    with 131 replies, I think this must be the longest threaded discussion in devnet forum so far !!!
    congrats to you guys for sticking till the end and solving it :)

    1 Reply Last reply
    0
    • D Offline
      D Offline
      doforumda
      wrote on 13 Oct 2010, 15:52 last edited by
      #134

      hi
      i have got the same problem again after restarting my system.
      when i execute code it again fails to connect. it returns this problem.
      @
      Starting /home/zafar/c++/insertquery-build-desktop/insertquery...
      DB could be opened QSqlError(2002, "QMYSQL: Unable to connect", "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
      /home/zafar/c++/insertquery-build-desktop/insertquery exited with code 0
      @

      i ran this command
      @
      sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
      @
      but this displays this error
      @
      ln: creating symbolic link `/var/run/mysqld/mysqld.sock': No such file or directory
      @
      i have already created this directory while lyut and Dii were solving this problem. at that time when i ran this command it worked really perfect but now it is not working.
      Please help

      1 Reply Last reply
      0
      • D Offline
        D Offline
        Dii
        wrote on 13 Oct 2010, 17:02 last edited by
        #135

        Welcome back :)

        Let's check to existence of those sock files...

        sudo ls -l /opt/lampp/var/mysql/mysql.sock

        sudo ls -l /var/run/mysqld/mysqld.sock

        1 Reply Last reply
        0
        • D Offline
          D Offline
          doforumda
          wrote on 13 Oct 2010, 17:13 last edited by
          #136

          well mysql.sock is there
          but there is no such thing in mysqld. i mean there is no mysqld.sock file in mysqld folder

          1 Reply Last reply
          0
          • D Offline
            D Offline
            doforumda
            wrote on 13 Oct 2010, 17:15 last edited by
            #137

            thank god your are here

            1 Reply Last reply
            0
            • D Offline
              D Offline
              doforumda
              wrote on 13 Oct 2010, 17:40 last edited by
              #138

              i am waiting for help Dii

              1 Reply Last reply
              0
              • D Offline
                D Offline
                Dii
                wrote on 13 Oct 2010, 19:50 last edited by
                #139

                hmmm pretty strange, does /var/run/mysqld exits? if you try

                sudo mkdir /var/run/mysqld

                and then the

                sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

                Though restart should not delete the directory, but I can't imagine anything else at the moment.

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  doforumda
                  wrote on 13 Oct 2010, 20:12 last edited by
                  #140

                  it works now thanks again. any clue what happened to this file after restarting.

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    Dii
                    wrote on 13 Oct 2010, 20:20 last edited by
                    #141

                    Hmmm... /var/run will be clear on each start, so you have to do a directory and the symlink again. You can do it with a script.

                    Or get rid of the whole LAMPP setup and use the regular mysql package. Maybe it's possible to run two mysql parallel, but I don't recommend that, too confusing.

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lyuts
                      wrote on 14 Oct 2010, 06:01 last edited by
                      #142

                      If the problems after restart persists, then I think it will be time to change socket parameter in my.cnf. configs are created for changing settings and I don't think it will harm any component in lampp, because if it would then 1) a special note must have been written somewhere and 2) it makes no sense to allow user to change this setting if it breaks lampp.

                      I'm a rebel in the S.D.G.

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        Dii
                        wrote on 14 Oct 2010, 07:44 last edited by
                        #143

                        I don't know LAMPP, but I have seen similar packages, where the packager wanted to keep everything in /opt and for that reason all settings and installation directories were changed. It might be, that the apache or php is configured, to look for the socket in the /opt/lampp.

                        However, I looked around in the documentation, and I found setConnectOptions(..) which could be a good workaround. I think it should work like this:

                        db.setConnectOptions("UNIX_SOCKET=/opt/lampp/var/mysql/mysql.sock");

                        The only problem is, if you move the program to a different system, it won't work again, so you should make some lookups in the code, if the above is correct or not in the actual system (usually it won't be).

                        If this problem heads up more often (the distribution packagers change the socket location for fun), maybe it's good to implement a socket search function somewhere in QSqlDatabase::open().

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          doforumda
                          wrote on 14 Oct 2010, 08:05 last edited by
                          #144

                          thanks for that exaplanation

                          1 Reply Last reply
                          0
                          • L Offline
                            L Offline
                            lyuts
                            wrote on 14 Oct 2010, 10:11 last edited by
                            #145

                            I was reading last posts and wondered, what if doforumda changes the way of connecting to mysql server. I just noticed that you can connect via tcp or socket, and here socket, as I understand is unix domain socket. Connecting via tcp might eliminate the need for looking sock files.

                            UPD: just a little bit more words. Unix domain sockets limit communicating process to be within the same OS, which is not true in general. At least I think the original application is not for local usage only.

                            I'm a rebel in the S.D.G.

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              Dii
                              wrote on 14 Oct 2010, 10:45 last edited by
                              #146

                              Yes, it must be possible to connect to 127.0.0.1:3306, though it will not work, as all mysql default configuration comes with "--skip-networking" option, for good reason. You don't want your sql server to be reachable directly from the outside. Ofcourse you can turn this off, but probably that's not the way.

                              I still find the above with the connect options better, like this:

                              @db.setConnectOptions("UNIX_SOCKET=/opt/lampp/var/mysql/mysql.sock");
                              if (!db.open()) {
                              db.setConnectOptions(); // clears the connect option string
                              }
                              if (!db.open()) ... some error handling@

                              1 Reply Last reply
                              0
                              • L Offline
                                L Offline
                                lyuts
                                wrote on 14 Oct 2010, 11:11 last edited by
                                #147

                                Isn't this limiting an application to have mysql server on the same machine? Moving an application will make doforumda put mysql server on that machine too.

                                I'm a rebel in the S.D.G.

                                1 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  Dii
                                  wrote on 14 Oct 2010, 11:39 last edited by
                                  #148

                                  Yes, that's true. I don't know doforumda's goal with this project, without any hurt, he need probably some more practice before he goes any further ;)

                                  1 Reply Last reply
                                  0
                                  • L Offline
                                    L Offline
                                    lyuts
                                    wrote on 14 Oct 2010, 11:53 last edited by
                                    #149

                                    Yep, I will probably agree with you here. I hope this doesn't look like we are offending doforumda, because we don't.

                                    I'm a rebel in the S.D.G.

                                    1 Reply Last reply
                                    0
                                    • D doforumda
                                      11 Oct 2010, 17:02

                                      now i changed it to this
                                      @
                                      query.exec("SELECT firstname,lastname FROM testTable");
                                      @
                                      still the same errors

                                      and i am following this link "Your text to link here...":http://doc.trolltech.com/4.7/sql-sqlstatements.html

                                      0xPIT0 Offline
                                      0xPIT0 Offline
                                      0xPIT
                                      wrote on 4 May 2016, 08:46 last edited by
                                      #150
                                      This post is deleted!
                                      1 Reply Last reply
                                      0

                                      • Login

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved