通过套接字连接到本地 MySQL 服务器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6525917/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 20:21:32  来源:igfitidea点击:

connect to local MySQL server through socket

mysqlmysql-error-2002

提问by Nazar Hussain

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)

I tried everything I found on internet, but cannot solve the problem on Ubuntu 11.04.

我尝试了在互联网上找到的所有内容,但无法解决 Ubuntu 11.04 上的问题。

I tried these things:

我试过这些东西:

  • started mysqld manually using sudo /usr/sbin/mysqld start
  • started mysqld using service mysqld start
  • Checked it is running using ps ax | grep mysqldand got result 3419 pts/0 S+ 0:00 grep --color=auto mysqld
  • created the file manually at/var/run/mysqld/mysqld.sock
  • Gave rights to mysqluser
  • Tried to remove and re-install but it still do not work
  • Tried taskselto configure LAMP, every thing else works but mysql generate same error.
  • 使用手动启动mysqld sudo /usr/sbin/mysqld start
  • 启动 mysqld 使用 service mysqld start
  • 检查它正在运行ps ax | grep mysqld并得到结果3419 pts/0 S+ 0:00 grep --color=auto mysqld
  • 在以下位置手动创建文件/var/run/mysqld/mysqld.sock
  • 授予mysql用户权限
  • 尝试删除并重新安装,但它仍然不起作用
  • 尝试tasksel配置 LAMP,其他一切正常,但 mysql 生成相同的错误。

When run with mysqld -P 3305it generates the error

使用mysqld -P 3305它运行时会产生错误

110630  0:24:24 [Warning] Can't create test file /var/lib/mysql/nazar-studio.lower-test
110630  0:24:24 [Warning] Can't create test file /var/lib/mysql/nazar-studio.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
110630  0:24:24 [ERROR] Aborting

110630  0:24:24 [Note] mysqld: Shutdown complete

Here is the mysql error log

这是mysql错误日志

10630  0:07:22 [Note] Plugin 'FEDERATED' is disabled.
110630  0:07:22  InnoDB: Initializing buffer pool, size = 8.0M
110630  0:07:22  InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
110630  0:07:22  InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
110630  0:07:22  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
110630  0:07:22  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
110630  0:07:23  InnoDB: Started; log sequence number 0 0
110630  0:07:23  InnoDB: Starting shutdown...
110630  0:07:28  InnoDB: Shutdown completed; log sequence number 0 44233
110630  0:07:28 [Note] Plugin 'FEDERATED' is disabled.
110630  0:07:28  InnoDB: Initializing buffer pool, size = 8.0M
110630  0:07:28  InnoDB: Completed initialization of buffer pool
110630  0:07:28  InnoDB: Started; log sequence number 0 44233
ERROR: 1064  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE user ADD column Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT ' at line 1
110630  0:07:28 [ERROR] Aborting

110630  0:07:28  InnoDB: Starting shutdown...
110630  0:07:34  InnoDB: Shutdown completed; log sequence number 0 44233
110630  0:07:34 [Note] /usr/sbin/mysqld: Shutdown complete

110630  0:07:34 [Note] Plugin 'FEDERATED' is disabled.
110630  0:07:34  InnoDB: Initializing buffer pool, size = 8.0M
110630  0:07:34  InnoDB: Completed initialization of buffer pool
110630  0:07:34  InnoDB: Started; log sequence number 0 44233
110630  0:07:34  InnoDB: Starting shutdown...
110630  0:07:39  InnoDB: Shutdown completed; log sequence number 0 44233
110630  0:07:39 [Note] Plugin 'FEDERATED' is disabled.
110630  0:07:39  InnoDB: Initializing buffer pool, size = 8.0M
110630  0:07:39  InnoDB: Completed initialization of buffer pool
110630  0:07:39  InnoDB: Started; log sequence number 0 44233
ERROR: 1050  Table 'plugin' already exists
110630  0:07:39 [ERROR] Aborting

110630  0:07:39  InnoDB: Starting shutdown...
110630  0:07:44  InnoDB: Shutdown completed; log sequence number 0 44233
110630  0:07:44 [Note] /usr/sbin/mysqld: Shutdown complete

110630  0:18:30 [Note] Plugin 'FEDERATED' is disabled.
110630  0:18:30  InnoDB: Initializing buffer pool, size = 8.0M
110630  0:18:30  InnoDB: Completed initialization of buffer pool
110630  0:18:30  InnoDB: Started; log sequence number 0 44233
mysqld: Too many arguments (first extra is 'start').
Use --verbose --help to get a list of available options
110630  0:18:30 [ERROR] Aborting

110630  0:18:30  InnoDB: Starting shutdown...
110630  0:18:35  InnoDB: Shutdown completed; log sequence number 0 44233
110630  0:18:35 [Note] mysqld: Shutdown complete

How can this error be resolved?

如何解决此错误?

回答by Nazar Hussain

I did experiments and finally solve it with these commands

我做了实验,最后用这些命令解决了

sudo chown mysql:root /var/lib/mysql/ -R
sudo chmod g+rw /var/lib/mysql/ -R
sudo /usr/sbin/mysqld --skip-grant &

It get running...... Hurraaahhhhhhhhhh!!!!!!!!!!!!

它开始运行...... Hurraaahhhhhhhhh !!!!!!!!!!!!

回答by user932973

Your log actually tells you the issue:

您的日志实际上告诉您问题:

mysqld: Too many arguments (first extra is 'start').

mysqld:参数太多(第一个是“开始”)。

Just start the daemon without the word 'start'. Instead of:

只需启动不带“开始”一词的守护进程。代替:

sudo /usr/sbin/mysqld start

须藤 /usr/sbin/mysqld 启动

it should be just:

它应该只是:

sudo /usr/sbin/mysqld

须藤/usr/sbin/mysqld

回答by Rilindo

It looks like either it can't create a file in /var/lib/mysql/. If you look at the errode 13, it is generally means permission errors.

看起来它无法在 /var/lib/mysql/ 中创建文件。如果你看errode 13,一般是权限错误。

1) Make sure that mySQL can write to the directory /var/lib/mysql and/or that mySQL owns that directory. Do a:

1) 确保 mySQL 可以写入目录 /var/lib/mysql 和/或 mySQL 拥有该目录。做一个:

cd /var/lib ; ls -la | grep mysql

To be sure.

为了确定。

2) If you are trying to start with the mySQL user, start it with root instead (You probably are, but it's worth checking).

2) 如果您尝试以 mySQL 用户启动,请改为以 root 启动(您可能是,但值得检查)。

3) If you are running something like SElinux, make sure that you enable it for mySQL access. I doubt that is the case, but it's worth checking.

3) 如果您正在运行 SElinux 之类的东西,请确保为 mySQL 访问启用它。我怀疑是这种情况,但值得检查。

4) Small note: Don't create the sock file - mysql will create one once it is up and running properly. If it still in the run directory, delete it.

4) 小提示:不要创建 sock 文件 - 一旦它启动并正常运行,mysql 将创建一个。如果它仍在运行目录中,请将其删除。

回答by Kamal Asawara

If you have multiple mysql servers installed then make sure you run the correct MYSQL or change your path settings. For example:

如果您安装了多个 mysql 服务器,请确保运行正确的 MYSQL 或更改您的路径设置。例如:

/opt/lampp/bin/mysql -u root -p 

I have XAMPP installed , the solution worked for me.

我安装了 XAMPP,该解决方案对我有用。

回答by matt

Try to kill the socket with (this may depend on your OS)

尝试杀死套接字(这可能取决于您的操作系统)

rm /var/lib/mysql/mysql.sock rm: remove socket `/var/lib/mysql/mysql.sock'? y restart the service

rm /var/lib/mysql/mysql.sock rm: 删除套接字`/var/lib/mysql/mysql.sock'?y 重启服务

service mysqld start

服务 mysqld 启动

回答by Milad Naseri

Have you tried?

你有没有尝试过?

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld

More background info here: https://askubuntu.com/a/127029

更多背景信息在这里:https: //askubuntu.com/a/127029