Fixing mysqldump on Zend Server CE on OS X
A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to mysql
which worked fine, mysqldump
didn’t work correctly and terminated with the error:
``A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to mysql
which worked fine, mysqldump
didn’t work correctly and terminated with the error:
``
Inspecting the mysql configuration contained in /usr/local/zend/mysql/data/my.cnf
confirmed that the section [client] showed the socket as returned by executing SHOW VARIABLES;
from the mysql client: /usr/local/zend/mysql/tmp/mysql.sock
Although it is possible to specify the socket by using mysqldump’s --socket
switch, that doesn’t really seem a ‘solution’.
Apparently mysqldump, as opposed to the mysql client does not use the server-specific settings contained in /usr/local/zend/mysql/data/my.cnf
. The comments in my.cnf state:
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/zend/mysql/data) or
# ~/.my.cnf to set user-specific options.
After copying /usr/local/zend/mysql/data/my.cnf
to /etc/my.cnf
mysqldump worked as expected.
In /etc/my.cnf
I have included only the setting needed to get mysqldump running:
# Specifying socket to use for mysql/mysqldump
# For other settings refer to /usr/local/zend/mysql/data/my.cnf
[client]
socket = /usr/local/zend/mysql/tmp/mysql.sock
Hope this saves anyone running into the same issue some time.
Update (alternative solutions):
As Joel Clermont pointed out it is also possible to create a symlink on the socket location expected by mysqldump to the real socket location. This can be done by executing:
```A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to mysql
which worked fine, mysqldump
didn’t work correctly and terminated with the error:
``A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to mysql
which worked fine, mysqldump
didn’t work correctly and terminated with the error:
``
Inspecting the mysql configuration contained in /usr/local/zend/mysql/data/my.cnf
confirmed that the section [client] showed the socket as returned by executing SHOW VARIABLES;
from the mysql client: /usr/local/zend/mysql/tmp/mysql.sock
Although it is possible to specify the socket by using mysqldump’s --socket
switch, that doesn’t really seem a ‘solution’.
Apparently mysqldump, as opposed to the mysql client does not use the server-specific settings contained in /usr/local/zend/mysql/data/my.cnf
. The comments in my.cnf state:
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/zend/mysql/data) or
# ~/.my.cnf to set user-specific options.
After copying /usr/local/zend/mysql/data/my.cnf
to /etc/my.cnf
mysqldump worked as expected.
In /etc/my.cnf
I have included only the setting needed to get mysqldump running:
# Specifying socket to use for mysql/mysqldump
# For other settings refer to /usr/local/zend/mysql/data/my.cnf
[client]
socket = /usr/local/zend/mysql/tmp/mysql.sock
Hope this saves anyone running into the same issue some time.
Update (alternative solutions):
As Joel Clermont pointed out it is also possible to create a symlink on the socket location expected by mysqldump to the real socket location. This can be done by executing:
Another possible approach is to create a symlink at `/etc/my.cnf` to `/usr/local/zend/mysql/data/my.cnf`. This has the downside that it requires loosening the default permissions (`drwxr-x---`) on the data folder by allowing ‘others’ to enter it. Commands to execute:
````A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to `mysql` which worked fine, `mysqldump` didn’t work correctly and terminated with the error:
``A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to `mysql` which worked fine, `mysqldump` didn’t work correctly and terminated with the error:
``
Inspecting the mysql configuration contained in `/usr/local/zend/mysql/data/my.cnf` confirmed that the section [client] showed the socket as returned by executing `SHOW VARIABLES;` from the mysql client: `/usr/local/zend/mysql/tmp/mysql.sock`
Although it is possible to specify the socket by using mysqldump’s `--socket` switch, that doesn’t really seem a ‘solution’.
Apparently mysqldump, as opposed to the mysql client does not use the server-specific settings contained in `/usr/local/zend/mysql/data/my.cnf`. The comments in my.cnf state:
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/zend/mysql/data) or
# ~/.my.cnf to set user-specific options.
After copying `/usr/local/zend/mysql/data/my.cnf` to `/etc/my.cnf` mysqldump worked as expected.
In `/etc/my.cnf` I have included only the setting needed to get mysqldump running:
# Specifying socket to use for mysql/mysqldump
# For other settings refer to /usr/local/zend/mysql/data/my.cnf
[client]
socket = /usr/local/zend/mysql/tmp/mysql.sock
Hope this saves anyone running into the same issue some time.
**Update** (alternative solutions):
As Joel Clermont pointed out it is also possible to create a symlink on the socket location expected by mysqldump to the real socket location. This can be done by executing:
```A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to `mysql` which worked fine, `mysqldump` didn’t work correctly and terminated with the error:
``A while ago I installed Zend Server Community Edition on OS X which was pretty straightforward. It was only recently that I found out that, as opposed to `mysql` which worked fine, `mysqldump` didn’t work correctly and terminated with the error:
``
Inspecting the mysql configuration contained in `/usr/local/zend/mysql/data/my.cnf` confirmed that the section [client] showed the socket as returned by executing `SHOW VARIABLES;` from the mysql client: `/usr/local/zend/mysql/tmp/mysql.sock`
Although it is possible to specify the socket by using mysqldump’s `--socket` switch, that doesn’t really seem a ‘solution’.
Apparently mysqldump, as opposed to the mysql client does not use the server-specific settings contained in `/usr/local/zend/mysql/data/my.cnf`. The comments in my.cnf state:
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/zend/mysql/data) or
# ~/.my.cnf to set user-specific options.
After copying `/usr/local/zend/mysql/data/my.cnf` to `/etc/my.cnf` mysqldump worked as expected.
In `/etc/my.cnf` I have included only the setting needed to get mysqldump running:
# Specifying socket to use for mysql/mysqldump
# For other settings refer to /usr/local/zend/mysql/data/my.cnf
[client]
socket = /usr/local/zend/mysql/tmp/mysql.sock
Hope this saves anyone running into the same issue some time.
**Update** (alternative solutions):
As Joel Clermont pointed out it is also possible to create a symlink on the socket location expected by mysqldump to the real socket location. This can be done by executing:
Another possible approach is to create a symlink at /etc/my.cnf
to /usr/local/zend/mysql/data/my.cnf
. This has the downside that it requires loosening the default permissions (drwxr-x---
) on the data folder by allowing ‘others’ to enter it. Commands to execute:
Granting more permissions can be a security consideration but on most development setups this probably won’t be an issue.
Additional info about Zend Server CE on OS X:
* [Zend Server CE Documentation][1]
* [Rob Allen: Some notes on Zend Server CE for Mac OS X][2]
[1]: http://files.zend.com/help/Zend-Server-Community-Edition/zend-server-community-edition.htm
[2]: http://akrabat.com/php/some-notes-on-zend-server-ce-for-mac-os-x/