Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

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 http://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.

share|improve this question
    
x86_64 version should be a little bigger considering it has some of the 32 bit libraries in addition to the 64 bit ones. –  The All Seeing Eye May 22 '13 at 15:01
    
that doesn't answer my question really. –  solarisman May 22 '13 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. –  Michael - sqlbot May 23 '13 at 2:11
add comment

migrated from stackoverflow.com May 22 '13 at 15:08

This question came from our site for professional and enthusiast programmers.

2 Answers

up vote 1 down vote accepted

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.

share|improve this answer
    
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 May 22 '13 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. –  RolandoMySQLDBA May 22 '13 at 18:58
    
to @RolandoMySQLDBA: I edited my question, added an amendment. I am feeling completely stupid and lost. –  solarisman May 22 '13 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. –  RolandoMySQLDBA May 22 '13 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 May 22 '13 at 20:57
show 1 more comment

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.

share|improve this answer
    
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 May 22 '13 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 May 22 '13 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 May 22 '13 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... –  Federico May 22 '13 at 16:17
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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