root@g0:~# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@g0:~# /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
上边是一种方法,接下来分析一波具体错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这句话的意思是说: 无法通过socket文件/var/run/mysqld/mysqld.sock连接到MySQL服务器,什么意思呢:
对于mysql来说,我将socket文件从/var/run/mysqld/mysqld.sock转移到了/data/mysqld/mysqld.sock我在my.cnf里指定了mysqld知道了,但是对于mysql还是会从默认的安装目录/var/run/mysqld/里找这个mysqld.sock文件,如果mysql没有找到,就不知道从哪里启动了。
mysqld.sock是数据库服务启动的时候自动生成的, 当服务关闭以后,这个文件会自动被删除,所以你查找不到,建议先重启数据库服务。
之后在
/etc/mysql/mysql.conf.d
中修改mysql.sock位置:
接下来启动服务:
root@g0:/# sudo /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
root@g0:/# mysql -u root -p
进入数据库