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?
Forum Update on Monday, May 27th 2025

Selecting data from mysql using qt?

Scheduled Pinned Locked Moved General and Desktop
150 Posts 7 Posters 142.0k 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.
  • L Offline
    L Offline
    lyuts
    wrote on 12 Oct 2010, 12:10 last edited by
    #124

    I think this is rather rough solution, but worth trying:

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

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

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

      so what next i think here the path for socket is correct because i have one mysql.sock file in that exactly same directory

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

        you mean i should create a dir at opt/lampp/var/run/mysqld ????

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

          millions of thanks to both of you TYUT and Dii. it works. one more question can please tell me what does this command do
          @
          sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
          @

          and also if i want to install everything from scratch then once i have to use this command to make it work?

          1 Reply Last reply
          0
          • D Offline
            D Offline
            Dii
            wrote on 12 Oct 2010, 12:28 last edited by
            #128

            doforumda: the problem was ~small... the Qt mysql driver looks for the socket file (the connection to mysql) in the default location (var/run/mysqld/mysqld.sock), though you had it somewhere else, because your lampp package changed the path.

            The "ln -s" made a symbolic link to that, so the /var/run/mysqld/mysqld.sock point to the /opt/lampp/var/mysql/mysql.sock. This way Qt can find it. If you do a new installation, with lampp, you should do it again, if you use the regular mysql package, probably, you won't face this problem.

            lyuts: great work, we deserve these points :)

            1 Reply Last reply
            0
            • L Offline
              L Offline
              lyuts
              wrote on 12 Oct 2010, 12:33 last edited by
              #129

              I think our solution is rough enough, but at least it works. I think the best solution is to set the socket parameter in my.cnf to /var/run/mysqld/mysqld.sock. But it is up to you doforumda.

              bq. millions of thanks to both of you TYUT and Dii.

              Hey, I'm lyuts, not TYUT :)

              doforumda and ¤ Dii ¤, my congratulations, we did it.

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

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

                lyuts: I think that's the best solution, if he is changing the socket parameter of mysql probably he will screw up some other components in his LAMPP configuration. I don't recommend that.

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  lyuts
                  wrote on 12 Oct 2010, 13:34 last edited by
                  #131

                  I don't know what's going on within LAMPP and you might be right. It's just creating this symlink looks more like a workaround.

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

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    doforumda
                    wrote on 12 Oct 2010, 14:48 last edited by
                    #132

                    [quote author="lyuts" date="1286886793"]I think our solution is rough enough, but at least it works. I think the best solution is to set the socket parameter in my.cnf to /var/run/mysqld/mysqld.sock. But it is up to you doforumda.

                    bq. millions of thanks to both of you TYUT and Dii.

                    Hey, I'm lyuts, not TYUT :)

                    doforumda and ¤ Dii ¤, my congratulations, we did it.[/quote]

                    sorry I wrote your name wrong

                    1 Reply Last reply
                    0
                    • ? 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

                                          133/150

                                          12 Oct 2010, 15:17

                                          • Login

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