周顺的技术博客

  • 问题1:MySQL安装后,在/tmp/mysqld.log中找不到MySQL密码?
  • 问题2:MySQL连接报错,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  • 问题3:MySQL登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  • 首页
  • 榜上有名
  • 文章归档
  • 读者排行
  • 豆瓣书影
  • 友情链接
  • DevOps (4)
  • Docker (4)
  • k8s (9)
  • linux (11)
  • Mysql (9)
  • Python (2)
  • Redis (1)
  • Shell (6)
  • 主题 (0)
  • 未分类 (0)

常见MySQL错误解决

  • xiaoteng
  • 2025-03-08
  • 0

问题1:MySQL安装后,在/tmp/mysqld.log中找不到MySQL密码?

答:出现以上问题的主要原因有两种情况:① 计算机本身安装过MySQL软件,重复安装导致初始化失败 ② 数据库配置异常,忘记创建账号,目录异常等等都可能初始化失败了

初始化成功,在MySQL内部,会产生一个data目录,里面最少要包含mysql文件夹(内置mysql数据库,包含账号、系统等信息)

cd /export/server/mysql
ll data
drwxr-x--- 2 mysql mysql     4096 Apr 20 14:34 '#innodb_redo'
drwxr-x--- 2 mysql mysql      187 Apr 20 14:34 '#innodb_temp'
drwxr-x--- 2 mysql mysql      143 Apr 20 11:06  mysql
-rw-r----- 1 mysql mysql        6 Apr 20 14:34  mysqld.pid
-rw-r----- 1 mysql mysql 26214400 Apr 20 14:34  mysql.ibd
drwxr-x--- 2 mysql mysql     8192 Apr 20 11:06  performance_schema

如果没有这些目录或者文件,就是初始化失败了。

解决方案:删除data目录,然后重新初始化

cd /export/server/mysqlrm -rf databin/mysqld --initialize --user=mysql --basedir=/export/server/mysql &>/tmp/mysqld.log

问题2:MySQL连接报错,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

答:出现以上问题的主要原因,可能是MySQL软件没有启动 或者 MySQL已经异常启动,但是没有产生套接字。

MySQL软件没有启动

systemctl status mysqld
ll /tmp
systemctl start mysqld

MySQL已经异常启动,但是没有产生套接字

先尝试使用systemctl终止mysqld服务
systemctl stop mysqld

强制终止mysqld(生产环境慎用)
pkill mysqld

systemctl start mysqld

问题3:MySQL登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

答:1045是一个比较经典的报错编号,代表密码输入错误,密码不正确。

问题4:mysql、mysql-server、mysql.service、/etc/my.cnf之间关系

© 2026 周顺的技术博客
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}