dot*_*dot 287 mysql linux ubuntu
我的问题开始于我无法在我的mysql安装上以root用户身份登录.我试图在没有打开密码的情况下运行mysql ...但每当我运行命令时
# mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)
我永远不会得到提示.我试图按照这些说明恢复密码.
屏幕看起来像这样:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
我没有得到提示开始键入SQL命令来重置密码.
当我按CTRL+键杀死它时C,我收到以下消息:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Run Code Online (Sandbox Code Playgroud)
如果我重试命令并保留足够长的时间,我会得到以下一系列消息:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试以root身份登录:
# mysql -u root
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)
我检查过,/var/run/mysqld/mysqld.sock文件不存在.该文件夹,但不是文件.
此外,我不知道这是否有帮助,但我跑了find / -name mysqld,它想出了:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
Run Code Online (Sandbox Code Playgroud)
我是Linux和MySQL的新手,所以我不知道这是否正常.但我会包含这些信息以防它有所帮助.
我终于决定卸载并重新安装mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Run Code Online (Sandbox Code Playgroud)
以与上面相同的顺序再次重新安装所有软件包后,在phpmyadmin安装期间,我得到了同样的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)
所以我再次尝试卸载/重新安装.这次,在我卸载软件包之后,我还手动将所有mysql文件和目录重命名为mysql.bad各自的位置.
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
Run Code Online (Sandbox Code Playgroud)
然后我试图重新安装mysql-server和mysql-client试.但我注意到它没有提示我输入密码.是不是应该要求管理员密码?
Joe*_*eng 225
试试这个命令,
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
Ray*_*Ray 181
要查找系统上运行的所有套接字文件:
sudo find / -type s
Run Code Online (Sandbox Code Playgroud)
我的Mysql服务器系统打开了套接字 /var/lib/mysql/mysql.sock
找到套接字的打开位置后,使用套接字文件的路径在/etc/my.cnf文件中添加或编辑该行:
socket=/var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
有时,启动命令行可执行文件的系统启动脚本会指定一个标志--socket=path.这个标志可能会覆盖my.cnf的位置,这会导致找不到my.cnf文件所指示的套接字.然后,当您尝试运行mysql命令行客户端时,它将读取my.cnf以查找套接字,但由于它与服务器创建的不同,因此无法找到它.所以,除非你关心套接字所在的位置,否则只需更改my.cnf即可.
然后,停止mysqld进程.您如何做到这一点因系统而异.
如果您是linux系统中的超级用户,如果您不知道Mysql安装程序使用的特定方法,请尝试以下操作之一:
service mysqld stop/etc/init.d/mysqld stopmysqladmin -u root -p shutdownpkill -9 mysqldpgrep mysql或ps aux | grep mysql | grep -v grep4969终止于kill -9 4969执行此操作后,您可能希望查找pid文件/var/run/mysqld/并将其删除
确保套接字上的权限是这样的,即任何用户mysqld正在运行,因为它可以读/写它.一个简单的测试是打开它以完全读/写,看看它是否仍然有效:
chmod 777 /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
如果这样可以解决问题,则可以根据安全设置根据需要定制套接字的权限和所有权.
此外,运行mysqld进程的用户必须可以访问套接字所在的目录.
Ham*_*aza 115
由于多次安装mysql而发生此错误.运行命令:
ps -A|grep mysql
Run Code Online (Sandbox Code Playgroud)
使用以下方法终止进程:
sudo pkill mysql
Run Code Online (Sandbox Code Playgroud)
然后运行命令:
ps -A|grep mysqld
Run Code Online (Sandbox Code Playgroud)
同时运行以下命令终止此过程:
sudo pkill mysqld
Run Code Online (Sandbox Code Playgroud)
现在您已完全设置,只需运行以下命令:
service mysql restart
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
有很好的工作mysql了
Ioa*_*tef 38
解决方案更容易.
mysql.sock文件所在的位置.在我的情况下它是在/opt/lampp/var/mysql/mysql.sock sudo Nautilusmysql.sock文件所在的位置 mysqld.sock,然后右键单击该文件,并削减其/var/run并创建一个名为的文件夹mysqld并输入它mysqld.sock文件/var/run/mysqld/mysqld.sock:)Pra*_*til 25
安装后只需启动MySQL服务:
对于Ubuntu:
sudo service mysql start;
Run Code Online (Sandbox Code Playgroud)
对于CentOS或RHEL:
sudo service mysqld start;
Run Code Online (Sandbox Code Playgroud)
coo*_*994 14
好吧,只需复制并粘贴这些代码:这应该在终端,服务器内部,当你的mysql数据库没有正确安装时,以及当你收到这个错误时:'无法通过套接字连接到本地MySQL服务器'/ var/run/mysqld/mysqld.sock'(2)'.
停止MySql
sudo /etc/init.d/mysqld stop
Run Code Online (Sandbox Code Playgroud)
重启或启动它
sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start
Run Code Online (Sandbox Code Playgroud)
建立这样的链接并将其提供给系统
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
运行安全安装,指导您配置mysql所需的所有过程
/usr/bin/mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)
mot*_*aby 12
使用MySQL 5.6和5.7的Ubuntu上有一个错误,var/run/mysqld/只要MySQL服务停止或重新启动,它就会消失.这可以防止MySQL运行.找到这个解决方法,这不是完美的,但至少它在停止/重启后运行:
mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/
Run Code Online (Sandbox Code Playgroud)
Sad*_*dee 12
确保您无法访问的套接字文件路径与“/var/run/mysqld/mysqld.sock”相同,否则将路径更改为您的路径。停止mysqld
$ sudo /etc/init.d/mysqld stop
Run Code Online (Sandbox Code Playgroud)
如果进程仍在运行;
$ sudo pkill -9 mysqld
Run Code Online (Sandbox Code Playgroud)
删除要创建套接字的 mysql 目录。对我来说它不允许删除,所以我不得不强行删除。
$ sudo mkdir -p /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)
将所有权设置为目录
$ sudo chown mysql:mysql /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)
启动mysql
$ sudo /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
尝试连接mysql
$ sudo mysql -u dbuser -p
Run Code Online (Sandbox Code Playgroud)
小智 8
这个问题有很多原因,但有时只是重新启动mysql服务器,它将解决问题.
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个错误
我收到了 mysql 库的新更新,所以我在收到这些错误后更新了我的 Kubuntu 操作系统。
我尝试过的命令以及我如何修复它。
MySql-server 运行正常,但是当我尝试连接它时
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.
Run Code Online (Sandbox Code Playgroud)
我检查了/var/run/mysqld/mysqld.sock'.这个目录。我的文件不存在。
我也尝试过这些命令进行连接,但对我不起作用。
mysql -h 127.0.0.1 -P 3306 -u root -p
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
浪费了大约2 个小时后,我找到了解决方案
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f
Run Code Online (Sandbox Code Playgroud)
在那之后,一切都为我解决了。
小智 6
用户加载步骤的答案对我有用.有时需要在/etc/mysql/my.cnf添加到客户端的行中编辑文件
[client]
password = your_mysql_root_password
port = 3306
host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
临时解决方案
也许有人面临这个问题。我在Ubuntu 14上使用Mysql Workbench并收到此错误。
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
Run Code Online (Sandbox Code Playgroud)
通过运行找到您的套接字文件sudo find / -type s,在我的情况下是/run/mysqld/mysqld.sock
所以,我刚刚在tmp目录中创建了一个指向这个文件的链接。
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个临时解决方案,因为创建的文件将位于/tmp. 请参阅其他答案以获取永久解决方案。
在ubuntu上使用XAMPP:
在/ var / run目录中创建一个名为mysqld的文件夹。您可以使用命令完成此操作。sudo mkdir /var/run/mysqld
创建一个指向XAMPP服务器在启动时创建的mysql.sock文件的符号链接。您可以使用命令sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock。
注:该的mysql.sock在服务器启动时创建和删除服务器时停止,所以有时链接创建可能会出现被打破,但只要你开始使用服务器它应该工作的文件,无论是
sudo /opt/lampp/lampp start或任何其他手段。
祝好运!希望您这次能摆脱它。
小智 6
我认为您的 MySQL 服务器尚未启动。因此,使用以下命令之一启动服务器。
#services mysql start
Run Code Online (Sandbox Code Playgroud)
或者
#/etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
小智 5
解决方案
最后卸载并重新安装mysql.**
然后再安装
执行此操作后,将使用164 MB的额外磁盘空间.
...... .......
最后你会得到这些线......
设置libhtml-template-perl(2.95-1)......
设置mysql-common-5.6(5.6.16-1~exp1)... libc-bin的处理触发器(2.19-0ubuntu6)处理ureadahead的触发器(0.100.0-16)...
然后
root @ ubuntu1404:〜#mysql -u root -p(对于你应该使用的每个密码)
输入密码:
注意:输入的密码应与mysql的安装时密码相同(如.root,system,admin,rahul等...)
然后输入
使用rahul_db(数据库名称);
谢谢.**
小智 5
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
在/etc/my.cnf添加这一行:
[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]
Run Code Online (Sandbox Code Playgroud)
并使用以下命令重新启动服务:
service mysql restart
这对我有用
我有完全相同的问题。经过一个小时的奋斗,我找到了一种无需重新安装mysql-common、mysql-client、mysql-server即可纠正的方法。
首先,转到“/var/run/mysqld”。你会发现mysql.sock不存在。只需删除整个 mysqld 目录并重新创建它并为其提供必要的权限即可。
# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/
Run Code Online (Sandbox Code Playgroud)
现在,完全终止 mysql 进程。即使关闭服务后,它也可能会在运行“/etc/init.d/mysql status”命令时显示“正在等待页面清理”。
要完全关闭服务,请使用
# pkill -9 mysqld
Run Code Online (Sandbox Code Playgroud)
进程被终止后,尝试使用以下命令重新启动它
# /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
你会发现它效果很好!而且阻止它也不会有问题。
| 归档时间: |
|
| 查看次数: |
1175582 次 |
| 最近记录: |