What is causing my ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)?
2
votes
2
answers
2002
views
I'm using
brew install mysql
/brew install mariadb
, and cannot find a way around the following error:
ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)
Here are the key takeaways:
* I have nothing running on ports 80, 8080, 3306, etc.
* brew services list
shows mysql
/mariadb
as stopped, regardless of how I start it up.
* I've looked at permission settings using sudo chown -R mysql:mysql /opt/homebrew/var/mysql
and sudo chown -R mysql:mysql /opt/homebrew/var/mysql
.
* There are no set flags when running ls -lO /opt/homebrew/var/mysql
or ls -l0 /opt/homebrew/bin/mariadb
* My default my.cnf
file (as per Homebrew's installation) is tiny. It only contains a bind-address
and a mysqlx-bind-address
– both 127.0.0.1
.
* I cannot find a /tmp/mysql.sock
file anywhere, and know it's not enough to simply create one.
* Installing MySQL through the DMG actually works, although I need to use MariaDB primarily and that is only available through brew
.
I've looked at other questions here to try and find an answer. I've gone through solutions relating to [macOS root passwords](https://stackoverflow.com/questions/9695362/macosx-homebrew-mysql-root-password/) , [access denied issues](https://stackoverflow.com/questions/4359131/brew-install-mysql-on-macos?rq=2) with brew installs, tried the solutions in an [answer on ServerFault](https://serverfault.com/questions/279366/what-should-mysqld-sock-contain-why-dont-i-have-it) , and many of the [other top answers](https://serverfault.com/search?q=ERROR+2002+%28HY000%29%3A+Can%27t+connect+to+local+server+through+socket+%27%2Ftmp%2Fmysql.sock%27+%282%29) on this issue over at ServerFault.
What else could I look into to fix this? Could there be a more complex permissions issue, and if so, how do I go about diagnosing it? I'll of course add further details here if requested, so please let me know what you'd want to see.
**UPDATE 10-Apr**
After looking at my .err
logs, it appears as though I have some data corruption in the ibdata1
table:
2024-04-10T22:19:41.436840Z 1 [ERROR] [MY-012224] [InnoDB] Tablespace flags are invalid in datafile: ./ibdata1, Space ID:0, Flags: 21. Please refer to http://dev.mysql.com/doc/refman/8.3/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
2024-04-10T22:19:41.436882Z 1 [ERROR] [MY-012237] [InnoDB] Corrupted page [page id: space=0, page number=0] of datafile './ibdata1' could not be found in the doublewrite buffer.
2024-04-10T22:19:41.436891Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Data structure corruption.
2024-04-10T22:19:41.438452Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2024-04-10T22:19:41.438575Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2024-04-10T22:19:41.438583Z 0 [ERROR] [MY-010119] [Server] Aborting
To try and get round this, I've looked to use innodb_force_recovery = 1
in my.cnf
, and went up to 6. mariadb-safe --skip-grant-tables
hasn't fixed anything either.
Running brew services start -v mariadb
gives me the following:
/bin/launchctl enable gui/501/homebrew.mxcl.mariadb
/bin/launchctl bootstrap gui/501 /Users//Library/LaunchAgents/homebrew.mxcl.mariadb.plist
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; /bin/launchctl bootstrap gui/501 /Users//Library/LaunchAgents/homebrew.mxcl.mariadb.plist
exited with 5.
However, I don't have a storage issue, nor does my hard drive seem to have any issues.
**UPDATE 11-Apr**
I had already checked this, but wanted to recheck permissions and for flags on /opt/homebrew/var/mysql
and /opt/homebrew/bin/mariadb
as detailed in the takeaways list. Here's what I've done:
* Ran dscl . -list /Groups
and confirmed there is the _mysql
group.
* Ran id mysql
and confirmed it's a member of the _mysql
group (uid=74(_mysql) gid=74(_mysql)
)
* Ran ls -lO /opt/homebrew/bin/mariadb
to check the permissions for mysql:mysql
and username:admin
(755 lrwxr-xr-x
)
* Ran ls -lO /opt/homebrew/var/mysql
to check the permissions for mysql:mysql
and username:admin
(700 drwx------
)
I've also reconfirmed solutions I'd already come across and discarded:
* Removing mysqlx-bind-address = 127.0.0.1
from my.cnf
(and the various other solutions) based on this question .
Asked by It's WPTom
(29 rep)
Apr 10, 2024, 10:21 PM
Last activity: Apr 11, 2025, 01:09 PM
Last activity: Apr 11, 2025, 01:09 PM