sudo /usr/local/mysql/support-files/mysql.server start
This worked for bu. However, if this doesnt work then make sure that mysqld is running and try connecting.
answered Sep 17, 2013 at 6:36
PratyayPratyay
2,3161 gold badge17 silver badges14 bronze badges
6
For bu the problem was I wasn't running MySQL Server.
Run server first and then execute mysql
.
$ mysql.server start
$ mysql -h localhost -u root -p
Lii
12.1k9 gold badges68 silver badges89 bronze badges
answered May đôi mươi, năm ngoái at 20:32
yaskyask
4,2484 gold badges21 silver badges29 bronze badges
5
The relevant section of the MySQL manual is here. I'd start by going through the debugging steps listed there.
Also, remember that localhost and 127.0.0.1 are not the same thing in this context:
- If host is mix lớn
localhost
, then a socket or pipe is used. - If host is mix lớn
127.0.0.1
, then the client is forced lớn use TCP/IP.
So, for example, you can kiểm tra if your database is listening for TCP connections vi netstat -nlp
. It seems likely that it IS listening for TCP connections because you say that mysql -h 127.0.0.1
works just fine. To kiểm tra if you can connect lớn your database via sockets, use mysql -h localhost
.
If none of this helps, then you probably need lớn post more details about your MySQL config, exactly how you're instantiating the connection, etc.
answered May 6, 2013 at 16:04
jtoberonjtoberon
9,0061 gold badge36 silver badges49 bronze badges
7
I just changed the HOST
from localhost
lớn 127.0.0.1
and it works fine:
# settings.py of Django project
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'username',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '',
},
...
answered Mar 7, 2017 at 15:53
Sirbito XSirbito X
6546 silver badges8 bronze badges
4
For bu, the mysql server was not running. So, i started the mysql server through
mysql.server start
then
mysql_secure_installation
to secure the server and now I can visit the MySQL server through
mysql -u root -p
or
sudo mysql -u root -p
depending on your installation.
answered Jun 19, 2020 at 1:30
sh6210sh6210
4,5101 gold badge41 silver badges29 bronze badges
2
I've seen this happen at my cửa hàng when my devs have a stack manager lượt thích MAMP installed that comes preconfigured with MySQL installed in a non standard place.
at your terminal lập cập
mysql_config --socket
that will give you your path lớn the sock tệp tin. take that path and use it in your DATABASES HOST paramater.
What you need lớn bởi is point your
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'test',
'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
'PORT': '',
},
}
NOTE
also lập cập which mysql_config
if you somehow have multiple instances of mysql server installed on the machine you may be connecting lớn the wrong one.
answered May 9, 2013 at 16:35
4
When, if you lose your daemon mysql in mac OSx but is present in other path for exemple in private/var bởi the following command
1)
ln -s /private/var/mysql/mysql.sock /tmp/mysql.sock
2) restart your connexion lớn mysql with :
mysql -u username -p -h host databasename
works also for mariadb
answered Aug 24, 2013 at 11:55
Run the below cmd in terminal
/usr/local/mysql/bin/mysqld_safe
Then restart the machine lớn take effect. It works!!
answered Jan 22, năm ngoái at 11:12
Prashanth SamsPrashanth Sams
21.1k21 gold badges104 silver badges129 bronze badges
1
After attempting a few of these solutions and not having any success, this is what worked for me:
- Restart system
- mysql.server start
- Success!
answered Oct 29, năm ngoái at 18:31
Mark LohrMark Lohr
1191 silver badge5 bronze badges
1
To those who upgraded from 5.7 lớn 8.0 via homebrew, this error is likely caused by the upgrade not being complete. In my case, mysql.server start
got bu the following error:
ERROR! The server quit without updating PID file
I then checked the log tệp tin via cat /usr/local/var/mysql/YOURS.err | tail -n 50
, and found the following:
InnoDB: Upgrade after a crash is not supported.
If you are on the same boat, first install [email protected]
via homebrew, stop the server, and then start the 8.0 system again.
brew install [email protected]
/usr/local/opt/[email protected]/bin/mysql.server start
/usr/local/opt/[email protected]/bin/mysql.server stop
Then,
mysql.server start
This would get your MySQL (8.0) working again.
answered Jul 13, 2018 at 0:43
BlaszardBlaszard
31.9k53 gold badges158 silver badges241 bronze badges
2
I have two sneaky conjectures on this one
CONJECTURE #1
Look into the possibility of not being able lớn access the /tmp/mysql.sock
tệp tin. When I setup MySQL databases, I normally let the socket tệp tin site in /var/lib/mysql
. If you login lớn mysql as root@localhost
, your OS session needs access lớn the /tmp
thư mục. Make sure /tmp
has the correct access rights in the OS. Also, make sure the sudo user can always read tệp tin in /tmp
.
CONJECTURE #2
Accessing mysql via 127.0.0.1
can cause some confusion if you are not paying attention. How?
From the command line, if you connect lớn MySQL with 127.0.0.1
, you may need lớn specify the TCP/IP protocol.
mysql -uroot -p -h127.0.0.1 --protocol=tcp
or try the DNS name
mysql -uroot -p -hDNSNAME
This will bypass logging in as root@localhost
, but make sure you have root@'127.0.0.1'
defined.
Next time you connect lớn MySQL, lập cập this:
SELECT USER(),CURRENT_USER();
What does this give you?
- USER() reports how you attempted lớn authenticate in MySQL
- CURRENT_USER() reports how you were allowed lớn authenticate in MySQL
If these functions return with the same values, then you are connecting and authenticating as expected. If the values are different, you may need lớn create the corresponding user [email protected]
.
answered May 10, 2013 at 21:23
RolandoMySQLDBARolandoMySQLDBA
44.3k16 gold badges94 silver badges135 bronze badges
Check number of open files for the mysql process using lsof command.
Increase the open files limit and lập cập again.
answered May 6, 2013 at 13:06
hsenhsen
4275 silver badges7 bronze badges
1
This may be one of following problems.
- Incorrect mysql lock. solution: You have lớn find out the correct mysql socket by,
mysqladmin -p variables | grep socket
and then put it in your db connection code:
pymysql.connect(db='db', user='user', passwd='pwd', unix_socket="/tmp/mysql.sock")
/tmp/mysql.sock is the returned from grep
2.Incorrect mysql port solution: You have lớn find out the correct mysql port:
mysqladmin -p variables | grep port
and then in your code:
pymysql.connect(db='db', user='user', passwd='pwd', host='localhost', port=3306)
3306 is the port returned from the grep
I think first option will resolve your problem.
answered May 9, 2013 at 15:25
Chamith MalindaChamith Malinda
4,5195 gold badges25 silver badges28 bronze badges
if you get an error lượt thích below :
django.db.utils.OperationalError: (2002, "Can't connect lớn local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
Then just find your mysqld.sock tệp tin location and add it lớn "HOST".
Like i am using xampp on linux ví my mysqld.sock
tệp tin is in another location. ví it is not working for '/var/run/mysqld/mysqld.sock
'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'asd',
'USER' : 'root',
'PASSWORD' : '',
'HOST' : '/opt/lampp/var/mysql/mysql.sock',
'PORT' : ''
}
}
answered Jun 7, 2018 at 9:59
ShyamShyam
6076 silver badges11 bronze badges
I think i saw this same behavior some time ago, but can't remember the details.
In our case, the problem was the moment the testrunner initialises database connections relative lớn first database interaction required, for instance, by import of a module in settings.py or some __init__.py.
I'll try lớn digg up some more info, but this might already ring a bell for your case.
answered May 1, 2013 at 20:51
Make sure your /etc/hosts has 127.0.0.1 localhost
in it and it should work fine
answered May 4, 2013 at 21:33
hd1hd1
34.6k5 gold badges82 silver badges94 bronze badges
2
I had lớn kill off all instances of mysql by first finding all the process IDs:
ps aux | grep mysql
And then killing them off:
kill -9 {pid}
Then:
mysql.server start
Worked for bu.
answered Feb 7, 2017 at 14:41
HomerPlataHomerPlata
1,7875 gold badges23 silver badges42 bronze badges
Check that your mysql has not reached maximum connections, or is not in some sort of booting loop as happens quite often if the settings are incorrect in my.cnf.
Use ps aux | grep mysql lớn kiểm tra if the PID is changing.
answered May 6, 2013 at 19:14
beillerbeiller
3,1351 gold badge12 silver badges20 bronze badges
Looked around online too long not lớn contribute. After trying lớn type in the mysql prompt from the command line, I was continuing lớn receive this message:
ERROR 2002 (HY000): Can't connect lớn local MySQL server through socket '/tmp/mysql.sock' (2)
This was due lớn the fact that my local mysql server was no longer running. In order lớn restart the server, I navigated to
shell> cd /user/local/bin
where my mysql.server was located. From here, simply type:
shell> mysql.server start
This will relaunch the local mysql server.
From there you can reset the root password if need be..
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
answered Apr 4, năm trước at 1:32
preynoldspreynolds
7808 silver badges13 bronze badges
This worked for bu :
mysql.server start
mysql -u root -p
answered Nov 24, 2022 at 8:36
YeshiYeshi
3733 silver badges8 bronze badges
The socket is located in /tmp. On Unix system, due lớn modes và ownerships on /tmp, this could cause some problem. But, as long as you tell us that you CAN use your mysql connexion normally, I guess it is not a problem on your system. A primal kiểm tra should be lớn relocate mysql.sock in a more neutral directory.
The fact that the problem occurs "randomly" (or not every time) let bu think that it could be a server problem.
Is your /tmp located on a standard disk, or on an exotic mount (like in the RAM) ?
Is your /tmp empty ?
Does
iotop
show you something wrong when you encounter the problem ?
answered May 9, 2013 at 15:35
KorethKoreth
6915 silver badges15 bronze badges
If it's socket related read this file
/etc/mysql/my.cnf
and see what is the standard socket location. It's a line like:
socket = /var/run/mysqld/mysqld.sock
now create an alias for your shell like:
alias mysql="mysql --socket=/var/run/mysqld/mysqld.sock"
This way you don't need root privileges.
answered Aug 10, 2017 at 10:13
MaxVMaxV
6211 gold badge5 silver badges13 bronze badges
# shell script ,ignore the first
$ $(dirname `which mysql`)\/mysql.server start
May be helpful.
answered Dec 9, 2019 at 15:07
陈也在哦陈也在哦
112 bronze badges
1
I had faced similar problem recently. Went through many answers. I got it working by following steps.
- change the socket path in /etc/my.cnf (as i was repeatedly getting error with /tmp/mysql.sock ) reference lớn change the socket path
- run mysqld_safe lớn restart the server as it is the recommended way lớn restart in case of errors. reference lớn mysqld_safe
answered Apr 10, 2020 at 12:24
Arjun K RArjun K R
4621 gold badge6 silver badges25 bronze badges
If you installed through Homebrew, try lớn run
brew services start mysql
answered Jul 12, 2020 at 21:03
ztyregztyreg
1792 silver badges5 bronze badges
Configure your DB connection in the 'Manage DB Connections dialog. Select 'Standard (TCP/IP)' as connection method.
See this page for more details http://dev.mysql.com/doc/workbench/en/wb-manage-db-connections.html
According lớn this other page a socket tệp tin is used even if you specify localhost.
A Unix socket tệp tin is used if you bởi not specify a host name or if you specify the special host name localhost.
It also shows how lớn kiểm tra on your server by running these commands:
If a mysqld process is running, you can kiểm tra it by trying the following commands. The port number or Unix socket tệp tin name might be different in your setup. host_ip represents the IP address of the machine where the server is running.
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h host_ip version
shell> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version
answered May 11, 2013 at 16:47
Only YouOnly You
2,0721 gold badge21 silver badges36 bronze badges
in ubuntu14.04 you can bởi this lớn slove this problem.
zack@zack:~/pycodes/python-scraping/chapter5$ **mysqladmin -p variables|grep socket**
Enter password:
| socket | ***/var/run/mysqld/mysqld.sock*** |
zack@zack:~/pycodes/python-scraping/chapter5$***ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock***
zack@zack:~/pycodes/python-scraping/chapter5$ ll /tmp/mysql.sock
lrwxrwxrwx 1 zack zack 27 11月 29 13:08 /tmp/mysql.sock -> /var/run/mysqld/mysqld.sock=
answered Nov 29, năm ngoái at 5:10
For bu, I'm sure mysqld is started, and command line mysql can work properly. But the httpd server show the issue(can't connect lớn mysql through socket).
I started the service with mysqld_safe&.
finally, I found when I start the mysqld service with service mysqld start, there are issues(selinux permission issue), and when I fix the selinux issue, and start the mysqld with "service mysqld start", the httpd connection issue disappear. But when I start the mysqld with mysqld_safe&, mysqld can be worked. (mysql client can work properly). But there are still issue when connect with httpd.
answered Jul 31, 2017 at 14:06
Simply try lớn lập cập mysqld
.
This was what was not working for bu on mac.
If it doesn't work try go lớn /usr/local/var/mysql/
lớn see detailed error logs.
answered Sep 2, 2017 at 21:10
elooneeloone
4,3442 gold badges33 silver badges35 bronze badges