无法为mysql“root”用户设置密码

Dev*_*rma 16 mysql php apache2

我是 Ubuntu 的新手。我正在运行 Ubuntu 12.10。我正在尝试安装 apache、php、mysql。但是我已经安装了 apache 并且它运行得很好。

sudo apt-get install apache2
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下命令安装 mysql 时

sudo apt-get install mysql-server 
Run Code Online (Sandbox Code Playgroud)

下载后,它要求输入密码,但输入并确认密码后。我收到以下错误消息。

无法为 Mysql“root”用户设置密码

为mysql设置密码时发生错误
管理用户。这可能是因为该帐户已经有密码,或者因为与 Mysql 服务器的通信问题。
安装包后,您应该检查帐户的密码。
请阅读 /usr/share/doc/mysql-server-5.5/README.Debian 文件以获取更多信息。

单击提示上的确定按钮后,我在终端上收到以下消息

Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)

Mysql 错误日志说

130209 14:26:37 [Note] Plugin 'FEDERATED' is disabled.
130209 14:26:37 InnoDB: The InnoDB memory heap is disabled
130209 14:26:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130209 14:26:37 InnoDB: Compressed tables use zlib 1.2.7
130209 14:26:37 InnoDB: Using Linux native AIO
mysqld: Can't create/write to file '/tmp/ibNuz7q0' (Errcode: 13)
130209 14:26:37  InnoDB: Error: unable to create temporary file; errno: 13
130209 14:26:37 [ERROR] Plugin 'InnoDB' init function returned error.
130209 14:26:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130209 14:26:37 [ERROR] Unknown/unsupported storage engine: InnoDB
130209 14:26:37 [ERROR] Aborting
Run Code Online (Sandbox Code Playgroud)

我已经搜索过这个问题,但对我没有任何作用。请帮忙。

小智 25

这里同样是root密码设置问题,我的可能是之前手动安装mysql server 5.6不成功造成的。彻底卸载 mysql 并非易事。我清除/重新安装了几个小时然后终于解决了

sudo dpkg --purge mysql-client-core-5.5 # or alternative version
sudo dpkg --purge mysql-client
sudo dpkg --purge mysql-server-core-5.5 # or alternative version
sudo dpkg --purge mysql-common
Run Code Online (Sandbox Code Playgroud)

基本上我只是输入

sudo dpkg --purge mysql # followed by two tabs
Run Code Online (Sandbox Code Playgroud)

然后--purge终端自动完成任何包。mysql-common由于一些依赖性问题,最终清除。

dpkg除了使用上面的命令

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
Run Code Online (Sandbox Code Playgroud)

我也试过 Greq 的方法

sudo rm -rf /etc/mysql
Run Code Online (Sandbox Code Playgroud)

从 /var/lib 中删除 mysql 文件夹

sudo rm -rf /var/lib/mysql/
Run Code Online (Sandbox Code Playgroud)

此时,要确保 mysql 已完全删除,请检查

which mysql
mysql --version
Run Code Online (Sandbox Code Playgroud)

第一个应该不返回输出而不是文件夹。第二个应该返回 mysql is not installed 而不是版本号。否则删除仍然不完整。

的意义dpkg --purge是,使用时apt-get独自一人,which mysqlmysql --version像MySQL的行为仍然存在。

重新安装前,重新配置dpkg并更新

sudo dpkg --configure -a
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

问题终于解决了。希望对其他人有帮助。

  • 在我的情况下,当: sudo dpkg --purge mysql-common 它失败了: dpkg:依赖问题阻止删除 mysql-common:mysql-client-5.5 依赖于 mysql-common (>= 5.5.35-0ubuntu0.12.04. 2)。libmysqlclient18 依赖于 mysql-common (>= 5.5.35-0ubuntu0.12.04.2)。dpkg:错误处理 mysql-common (--purge):依赖问题 - 未删除处理时遇到错误:mysql-common (3认同)

小智 5

您需要完全删除mysql。相信我,我试过了。dpkg 不会单独执行此操作。

/sf/ask/759710311/

如果你赶时间

sudo service mysql stop  #or mysqld
sudo killall -9 mysql
sudo killall -9 mysqld
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server-core-5.5
sudo apt-get purge mysql-client-core-5.5
Run Code Online (Sandbox Code Playgroud)


gre*_*een 3

我认为原因是mysql无法访问您的/tmp/目录,正如行中所说

mysqld:无法创建/写入文件“/tmp/ibNuz7q0”(错误代码:13)

在终端中运行以下命令:

须藤苏
chown root:root /tmp
chmod 1777 /tmp
/usr/sbin/mysqld &

解释

  • sudo su:运行以下命令作为root.
  • chown root:root /tmproot:使组的用户root成为 的所有者/tmp
  • chmod 1777 /tmp:更改 的权限,/tmp以便所有用户都可以访问该目录,并且只有所有者或 可以root删除该目录中的文件。(有关文件权限的更多信息请参见此处
  • /usr/sbin/mysqld &: 启动mysqld守护进程。


Nat*_*chy 1

如果sudo apt-get purge mysql-server && sudo apt-get install mysql-server这不起作用,请在我的答案上发表评论,我将与您一起解决此问题。