我已经在 CentOS 7 上安装了 MySQL。一切正常,启动 mysqld 服务并更改 root 密码:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
/var/lib/mysql 中没有“mysql.sock”。我在 /tmp 中找到了 mysql.sock,但无法访问。在 google 上搜索后,我发现 mysqld 启动时会自动创建“mysql.sock”。但它不起作用。重启、重新安装... 很多次。
$ service mysqld status -l
Redirecting to /bin/systemctl status -l mysqld.service
mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: activating (start-post) since Fri 2015-02-13 08:41:14 ICT; 4s ago
Process: 13001 ExecStart=/usr/bin/mysqld_safe (code=exited, status=0/SUCCESS)
Process: 12989 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 13001 (code=exited, status=0/SUCCESS); : 13002 (mysql-systemd-s)
CGroup: /system.slice/mysqld.service
└─control
├─13002 /bin/bash /usr/bin/mysql-systemd-start post
└─13192 sleep 1
Feb 13 08:41:14 localhost.localdomain systemd[1]: Starting MySQL Community Server...
Feb 13 08:41:14 localhost.localdomain mysqld_safe[13001]: 150213 08:41:14 mysqld_safe Logging to '/var/log/mysqld.log'.
Feb 13 08:41:14 localhost.localdomain mysqld_safe[13001]: 150213 08:41:14 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Feb 13 08:41:14 localhost.localdomain mysqld_safe[13001]: rm: cannot remove ‘**/tmp/mysql.sock’: Permission denied**
Feb 13 08:41:15 localhost.localdomain mysqld_safe[13001]: 150213 08:41:15 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
更改mysql.sock的权限:
chmod: cannot operate on dangling symlink
答案1
“mysql.sock” 是一个 unix 套接字,用于在进程之间交换数据。另一种方法是将其配置为在网络上运行监听。
mysqld 应该根据需要创建和删除此套接字。你在这里做了什么?你是用 CentOS 的 rpm 安装的吗?编译并安装的 tarball?看起来你在这里做了一些有趣的事情。你上面发布的内容在我看来不像是来自 CentOS rpm,除非他们做了更改。这肯定是一个配置问题。
你的 my.cnf 说了什么?/var/lib/mysql/mysql.sock (我假设是) 或 /tmp/mysql.sock ?
file /tmp/mysql.sock
这说明了什么?
rpm -ql name-of-mysql-server-package
然后?
此外,my.cnf 文件的内容和 /etc/sysconfig 中的任何内容