Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'

96
作者 甘言川
2017.05.16 12:55 字数 245

重置mysql

MySQL下mysql.sock丢失丢失的原因一般是因为配置文件不一致的原因,mysqld 错误启动,mysqld_safe 会清除一次mysql.sock 。解决方法是:

判断一般人解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,所以也就无法创建/tmp/mysql.sock 和hostname.pid文件。因此,总结解决方法如下(注: 使用root也可以):

#su mysql
$/usr/local/bin/mysql_install_db //重建授权表
$/usr/local/bin/mysqld_safe & //& 后台运行,不用重新clone一个窗口
$/usr/local/bin/mysql //测试
mysq>bye;

通过上面的操作,应该会生成一个mysql.sock。具体目录我这边是:/var/lib/mysql/mysql.sock。(PS:有的人会是:/tmp/mysql.sock)这个路径在/etc/my.cnf里面会有对应的配置

[mysqld]
scoket=/var/lib/mysql/mysql.sock

修改root密码

通过上面的操作,直接mysql就能进入系统了。这不我们想要的,我们希望有密码。

mysql;
mysql>update set user password=PASSWORD('123456') where user='root';
mysql>flush privileges;
mysql>quit;

现在在登录就需要密码了。OK 大功告成!!!

J2EE