6

How is this possible:

I installed mysql-5.6.11-osx10.7-x86.dmg which is supposed to be version Mac OS X ver. 10.7 (x86, 32-bit), DMG Archive (32 bit!)

But upon SHOW VARIABLES LIKE "%version%"; I get the following:

mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| innodb_version          | 5.6.11                       |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| version                 | 5.6.11                       |
| version_comment         | MySQL Community Server (GPL) |
| version_compile_machine | x86_64                       |
| version_compile_os      | osx10.7                      |
+-------------------------+------------------------------+
7 rows in set (0,00 sec)

Why x86_64 ?

Amendment:

Now it becomes weird: I uninstalled MySQL with the help of https://stackoverflow.com/questions/1436425/how-do-you-uninstall-mysql-from-mac-os-x

Then I installed mysql-5.5.31-osx10.6-x86_64 from http://dev.mysql.com/downloads/mysql/5.5.html#downloads It is clearly sitting in /usr/bin/local/mysql-5.5.31-osx10.6-x86_64/ (note the 64 at the end).

Now this:

mysqld  Ver 5.5.31 for osx10.6 on i386 (MySQL Community Server (GPL))

and:

mysql  Ver 14.14 Distrib 5.5.31, for osx10.6 (i386) using readline 5.1

and this:

mysql> SHOW VARIABLES LIKE "%version_compile%";
+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| version_compile_machine | i386    |
| version_compile_os      | osx10.6 |
+-------------------------+---------+
2 rows in set (0.00 sec)

How can this be: 32 bit architecture after (obviously) downloading and installing 32 bit? I am feeling lost.

3
  • x86_64 version should be a little bigger considering it has some of the 32 bit libraries in addition to the 64 bit ones.
    – Hidden
    Commented May 22, 2013 at 15:01
  • that doesn't answer my question really.
    – solarisman
    Commented May 22, 2013 at 15:11
  • It looks like Oracle has a history of not setting this value correctly: bugs.mysql.com/bug.php?id=67024 ... I found some 5.5 systems on solaris 10 in my network that show 'i386' even though the mysqld executable is identifiable as "ELF 64-bit LSB executable AMD64" while MySQL 5.1 on Solaris 10 reports 'x86_64' ... so I'm guessing this value is never particularly trustworthy. Commented May 23, 2013 at 2:11

2 Answers 2

2

I was looking over the comments from @Federico's answer.

When you ran mysql -V, you got the client program's version. Thus, the mysql client is definitely 32-bit. You need to run mysqld -V. This will give you the server's version (i.e., the version of mysqld)

EXAMPLE

[root@***]# mysqld -V
mysqld  Ver 5.0.81-community-log for unknown-linux-gnu on x86_64 (MySQL Community Edition (GPL))

What you see from mysqld -V should coincide with SHOW VARIABLES LIKE "%version%";.

The fact that

  • mysqld runs in the 32-bit OS
  • mysql client connects to mysqld

reveals one of three(3) scenarios

  1. mysqld is 32-bit and runs good; 32-bit client connects just fine
  2. mysqld is 64-bit and runs slow; 32-bit client connects just fine
  3. mysqld is 64-bit with the possibility of crashing if code for handling 64-bit addresses was not accounted for, 32-bit client connects fine until it mysql or mysqld crashes

If it is scenario 1, no worries. Otherwise, either code for handling 64-bit addresses exists (chances slim-to-none) or not. There is a possibility that version_comment was a typo left over from a previous 64-bit build.

6
  • to @Rolando: mysqld -V gives me mysqld Ver 5.6.11 for osx10.7 on i386 (MySQL Community Server (GPL)). So also 32-bit. Means, server and client are both 32 bit. How shall I understand your last sentence? I just repeated version_comment and still get x86_64.
    – solarisman
    Commented May 22, 2013 at 18:56
  • Then, it must be a typo on Oracle's part. Sometimes, they create all the builds for all versions of mysqld and somehow left the comment unchanged. Perhaps they did this when creating the 64-bit first and building the 32-bit version and simply forgot to correct the comment to be embedded in mysqld. Commented May 22, 2013 at 18:58
  • to @RolandoMySQLDBA: I edited my question, added an amendment. I am feeling completely stupid and lost.
    – solarisman
    Commented May 22, 2013 at 20:46
  • It is as I said though I am a bit surprised: Oracle must have deployed the 32-bit binaries with 64-bit comments. Obviously, a huge case of human error. This is no way your fault. You don't need glasses (If you have glasses already, you don't new glasses). In addition, version_compile_os is different. The binaries were build on different machines with different OS versions. Commented May 22, 2013 at 20:50
  • to @RolandoMySQLDBA: o.k. but now it's the other way round, and not even for the latest version. So that human error would be even bigger. still possible? So where is their mistake, what IS correct? The comments i get when asking for 'mysql -V' and 'mysqld -V' or the download link, their disk image file name and the directory which was created?
    – solarisman
    Commented May 22, 2013 at 20:57
2

Let's analyze the string '5.6.11-osx10.7-x86'. 5.6.11 is the MySQL version. osx is the platform. 10.7 is the version of the MacOS X package for the 5.6.11 MySQL version.

That package was compiled on a x86_64 machine.

4
  • I want a 32 bit MySQL version to be installed, that's all. I am just confused about the x86_64, which indicates a 64 bit MySQL version. Unless this shows that my OS is 64 bit. If so, how do I confirm that I got 32 bit MySQL installed?
    – solarisman
    Commented May 22, 2013 at 15:13
  • It is all about this: [link] (stackoverflow.com/questions/16633349/…). Initially I tried all in 64 bit. Now I want to try it with MySQL 32 bit.
    – solarisman
    Commented May 22, 2013 at 15:18
  • ok with mysql -V i got the following: mysql Ver 14.14 Distrib 5.6.11, for osx10.7 (i386) using EditLine wrapper Is this telling me I have 32 bit MySQL installed? I only have one MySQL installed.
    – solarisman
    Commented May 22, 2013 at 15:33
  • As I said, that package is compiled on a x86 64bit machine. I don't know if Oracle provides a 32bit, or why it doesn't. I'm just telling you what those values mean... Commented May 22, 2013 at 16:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.