MySQL无法启动吗?

时间:2018-08-01 04:05:10

标签: mysql opensuse

我正在使用OpenSuse。

当我尝试在系统上启动mysql时,会在安装MySQL后运行。

rcmysql start

然后我收到此消息。

  

mysql.service的作业失败,因为控制过程退出   错误代码。请参见“ systemctl状态mysql.service”和“ journalctl -xe”   有关详细信息。

运行这两个命令后。

systemctl status mysql.service
  

●mysql.service-MySQL服务器已加载:已加载   (/usr/lib/systemd/system/mysql.service;禁用;供应商预设:   禁用)有效:自2018年2月27日星期二以来失败(结果:退出代码)   22:57:28 CDT; 4min 2s前过程:21381   ExecStartPost = / usr / lib / mysql / mysql-systemd-helper等待(代码=已退出,   status = 1 / FAILURE)流程:21380   ExecStart = / usr / lib / mysql / mysql-systemd-helper start(代码=已退出,   status = 1 / FAILURE)流程:21369   ExecStartPre = / usr / lib / mysql / mysql-systemd-helper升级(代码=已退出,   status = 0 / SUCCESS)流程:21359   ExecStartPre = / usr / lib / mysql / mysql-systemd-helper安装(代码=已退出,   status = 0 / SUCCESS)主PID:21380(代码=已退出,status = 1 / FAILURE)

然后我跑

journalctl -xe
  

Jul 31 21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:kwalletd5已启动   7月31日21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:openAsync用于   “:1.4” Jul 31 21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:设置   useNewHash设为true J​​ul 31 21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:   钱包足够新,使用新的哈希值Jul 31 21:48:00 linux-kfrm   org.kde.kwalletd5 [2699]:fsize:957594615 crypto.size():47528   blksz:7月31日21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:   使用不带父窗口的kwallet的应用程序““ kded5”“! 7月31   21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:迁移代理   开始... 7月31日21:48:00 linux-kfrm org.kde.kwalletd5 [2699]:旧   钱包已经迁移7月31日21:48:00 linux-kfrm   org.kde.kwalletd5 [2699]:迁移代理停止。 7月31日21:48:07   linux-kfrm org.kde.kwalletd5 [2699]:将useNewHash设置为true J​​ul 31   21:48:07 linux-kfrm org.kde.kwalletd5 [2699]:钱包足够新,使用   新哈希7月31日22:01:41 linux-kfrm su [5573] :( root)sdrafahl on   pts / 2 Jul 31 22:01:41 linux-kfrm su [5573]:pam_unix(su:session):   (uid = 1000)为用户root打开的会话7月31日22:01:41 linux-kfrm   su [5573]:pam_systemd(su:session):无法创建会话:已经   在会话中运行Jul 31 22:01:41 linux-kfrm su [5573]:   pam_unix(su:session):用户root会话已关闭Jul 31 22:01:41   linux-kfrm su [5578] :(在root上)sdrafahl pts / 2 7月31日22:01:41   linux-kfrm su [5578]:pam_unix(su:session):为用户打开的会话   root by(uid = 1000)Jul 31 22:01:41 linux-kfrm su [5578]:   pam_systemd(su:session):无法创建会话:已经在   会话Jul 31 22:15:28 linux-kfrm su [5578]:pam_unix(su:session):   用户root的会话已关闭7月31日22:16:26 linux-kfrm su [16763]:(至   root)sdrafahl on pts / 0 Jul 31 22:16:26 linux-kfrm su [16763]:   pam_unix(su:session):由root用户打开的会话   sdrafahl(uid = 1000)7月31日22:16:26 linux-kfrm su [16763]:   pam_systemd(su:session):无法创建会话:已经在   会话Jul 31 22:18:05 linux-kfrm su [16949] :(要根)sdrafahl   pts / 2 Jul 31 22:18:05 linux-kfrm su [16949]:pam_unix(su:session):   由(uid = 1000)为用户root打开的会话7月31日22:18:05 linux-kfrm   su [16949]:pam_systemd(su:session):无法创建会话:已经   在会话中运行Jul 31 22:18:05 linux-kfrm su [16949]:   pam_unix(su:session):用户root会话已关闭Jul 31 22:18:05   linux-kfrm su [16954] :(在root上)sdrafahl pts / 2 7月31日22:18:05   linux-kfrm su [16954]:pam_unix(su:session):为用户打开的会话   root by(uid = 1000)Jul 31 22:18:05 linux-kfrm su [16954]:   pam_systemd(su:session):无法创建会话:已经在   会话Jul 31 22:35:27 linux-kfrm su [2970] :(要根)sdrafahl   pts / 4 Jul 31 22:35:27 linux-kfrm su [2970]:pam_unix(su:session):   由(uid = 1000)为用户root打开的会话7月31日22:35:27 linux-kfrm   su [2970]:pam_systemd(su:session):无法创建会话:已经   在会话中运行Jul 31 22:35:27 linux-kfrm su [2970]:   pam_unix(su:session):用户root会话关闭Jul 31 22:35:27   linux-kfrm su [2977] :(在root上)sdrafahl pts / 4 Jul 31 22:35:27   linux-kfrm su [2977]:pam_unix(su:session):为用户打开的会话   root by(uid = 1000)Jul 31 22:35:27 linux-kfrm su [2977]:   pam_systemd(su:session):无法创建会话:已经在   会议

我尝试卸载mysql并重新安装,但没有效果。

当我尝试做mysql -u root -p时 然后输入我收到此消息的密码。

  

ERROR 2002(HY000):无法通过套接字连接到本地MySQL服务器   '/var/run/mysql/mysql.sock'(2个“无此文件或目录”)

如何解决此问题并安装mysql以便登录?

1 个答案:

答案 0 :(得分:0)

您的错误日志中显示为

的部分
Cannot create session: Already running in a session Jul 31 22:35:27

通常意味着mysql需要使用的端口上已经连接了某些东西。当先前的启动尝试失败但仍连接到mysql需要使用的端口时,通常会发生这种情况。另一个不太可能的原因是另一个程序已经在使用该端口。

如果使用默认值安装mysql,则尝试使用端口3306,这是mysql的正常端口。因此,其他程序不太可能正在使用该端口。它很可能仍然是从先前失败的mysql启动连接的。

类型

netstat -an | grep -i 3306

这将告诉您是否有使用mysql端口的进程。您可能会看到类似:

# netstat -an | grep 3306
tcp        0      0 xxx.xxx.xxx.xxx:3306         0.0.0.0:*               LISTEN     

这意味着您已经在mysql端口上运行了某些程序。因此,输入:

lsof -i :3306

,您应该会看到类似的内容:

COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
mysqld  NNNNN mysql   14u  IPv4 1400263      0t0  TCP hostname:mysql (LISTEN)

,它将告诉您哪个程序正在使用该端口。获取进程的PID并使用终止进程

kill -9 NNNNN

然后尝试重新启动mysql