mysql 本地连接失败(必须使用-h127.0.0.1)解决

机器上安装 mysql 后,在本机上连接 mysql 有时候会遇到这种错误
[root@TENCENT64site ~]#mysql -uroot ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


如果添加 -h127.0.0.1则可以登入数据库,说明数据库是在运行的。

通过 find 命令查找 mysql.sock 文件,发现文件不存在,我的理解是 mysql 创建该文件的时候失败了。

 

网上查找后尝试如下方法,可以解决 :

修改数据库配置文件 /etc//my.cnf ,添加 skip-grant-tables,重启mysql服务,发现恢复正常

[mysqld]
innodb_flush_log_at_trx_commit=0
character_set_client=utf8
character_set_server=utf8
#skip-name-resolve
skip-grant-tables
max_binlog_size=100m
expire_logs_days=30
slow-query-log=1/usr
slow_query_log_file=/var/log/mysql/mysql-slow.log
long_query_time=2
log_bin_trust_function_creators=1
innodb_buffer_pool_size=1G
key_buffer_size=512M
read_buffer_size=2M
join_buffer_size=2M
sort_buffer_size=2M
innodb_read_io_threads=12
innodb_write_io_threads=8

 对应修改相应 section 下的参数 socket=/data1/mysql/mysql.sock,指定路径根据自己情况设置,

设置了该路径后,给 mysql 用户设置读写执行的权限

重启 mysql 就可以在重新配置的路径下创建 sock 文件了。

[mysqld]
datadir=/data1/mysql # 我把数据库文件迁移到这里, # 所以干脆把sock丢这里,权限刚好 socket=/data1/mysql/mysql.sock # 这个 [client] socket=/data1/mysql/mysql.sock # 这个

可以暂时把skip-grant-tables打开,mysql可进,重新设置mysql账户密码,

service mysql restart 重启mysql后,发现可以正常使用了

转载于:https://www.cnblogs.com/luanyulin/p/10819257.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值