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


16

我是Ubuntu新手。我正在运行Ubuntu 12.10。我正在尝试安装apache,php,mysql。但是,我已经安装了apache,并且运行良好。

sudo apt-get install apache2

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

sudo apt-get install mysql-server 

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

无法为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)

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

我已经搜索了这个问题,但没有任何帮助。请帮忙。


1
mysql-server通过运行来检查是否已安装ps -e | grep mysqld。如果看到任何表示已安装的输出。
绿灯

我没有得到任何输出
Devendra Verma

您发布的mysql错误可能表示您的/etc/mysql/my.cnf。如果您修改了该文件或/ etc / mysql目录中的任何文件,请还原原始文件并重试。
理查德·阿约特

内森(Nathan),我在这篇文章中也遇到了同样的问题,我已经遵循了与green7以及您的相同的指示。我什至不明白为什么mysql停止工作。如果您能给我进一步的帮助,我将很高兴。编辑:只是为了让您知道所有这一切都发生了,因为当我尝试安装mysql时,我从无处开始收到以下消息:错误:1146表'mysql.user'不存在预先感谢。

因声誉低而无法回答。这个要点对我有用gist.github.com/ervinb/63138a504da11a9c27af
gayavat

Answers:


25

相同的root密码设置问题,可能是以前手动安装mysql服务器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

基本上我只是输入

sudo dpkg --purge mysql # followed by two tabs

然后--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

我也尝试了Greq的方法

sudo rm -rf /etc/mysql

从/ var / lib删除mysql文件夹

sudo rm -rf /var/lib/mysql/

此时,要确保已完全删除mysql,请使用

which mysql
mysql --version

第一个应该不返回任何输出,而不是一个文件夹。第二个应该返回未安装mysql而不是版本号。否则,删除仍然不完整。

的意义dpkg --purge是,当apt-get单独使用时,which mysqlmysql --version行为就像仍然存在mysql一样。

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

sudo dpkg --configure -a
sudo apt-get update

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


3
在我的情况下,当: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
ses 2014年

这也为我工作。
迈克尔·林德曼

我一直在寻找一些可以完全解决这种情况的指示。就像描述的那样工作。谢谢。
Matt Setter 2014年

为我工作谢谢男人!遗憾的是,Linux在文件放置方面做得如此杂乱!
萨瑟顿

最终为我工作。我认为重新启动毕竟可以帮助我度过难关!
Danimal

5

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

看到

/programming/10853004/removing-mysql-5-5-completely

如果你着急

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

先生,您是英雄!我花了几个小时在所有地方搜寻和尝试不同的建议,但实际上只有您的建议有效!我认为区别在于删除mysql用户,因为我已经尝试了大多数其他选项。PS:kill -9deluser mysql成功运行命令之前,我必须执行多个过程。
Shautieh

3

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

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

在终端中运行以下命令:

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

说明

  • sudo su:以方式运行以下命令root
  • chown root:root /tmp:使用户rootroot组的所有者/tmp
  • chmod 1777 /tmp:更改的权限,/tmp以便所有用户均可访问,只有所有者或root可以删除该目录中的文件。(有关文件权限的更多信息,请点击此处
  • /usr/sbin/mysqld &:启动mysqld守护程序。

输入最后一条命令后,我收到以下消息:#/etc/init.d mysqld start bash:/etc/init.d:是目录
Devendra Verma,2013年

修改了答案
绿色

我在/ usr / sbin / mysqld和/ usr / sbin / mysqld&[1] 3497之后得到此输出。如何检查mysql是否正在运行
Devendra Verma

要检查您的mysql是否正在运行,请运行,ps -e | grep mysqld并获得一些输出,它运行正常。
绿色

谢谢@ green7这是输出ps -e | grep mysqld 1075吗?00:00:04 mysqld
Devendra Verma

2

昨天晚上,我为此花了几个小时的时间,并阅读了Google在其索引中有关该问题的所有内容。

我重新安装了mysql 20次。那可能是个字面值。

最后,其中一个或两个都解决了问题(在卸载/清除/刻录mysql之后):

  1. sudo rm -rf /etc/mysql (清除后并未删除)
  2. 然后,我关闭服务器,并将VM实例的大小从512MB调整为1GB(RAM)。

之后,我运行了sudo aptitude install mysql-server它,并最终成功安装了它:

$ sudo aptitude install mysql-server
[sudo] password for [REDACTED]: 
The following NEW packages will be installed:
  libdbd-mysql-perl{a} libmysqlclient18{a} mysql-client-5.5{a} mysql-common{a} mysql-server mysql-server-5.5{a} mysql-server-core-5.5{a} 
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,589 kB of archives. After unpacking 94.6 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://ftp.us.debian.org/debian/ wheezy/main mysql-common all 5.5.31+dfsg-0+wheezy1 [85.3 kB]
Get: 2 http://ftp.us.debian.org/debian/ wheezy/main libmysqlclient18 amd64 5.5.31+dfsg-0+wheezy1 [687 kB]
Get: 3 http://ftp.us.debian.org/debian/ wheezy/main libdbd-mysql-perl amd64 4.021-1+b1 [126 kB]
Get: 4 http://ftp.us.debian.org/debian/ wheezy/main mysql-client-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,923 kB]
Get: 5 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-core-5.5 amd64 5.5.31+dfsg-0+wheezy1 [3,784 kB]
Get: 6 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,900 kB]
Get: 7 http://ftp.us.debian.org/debian/ wheezy/main mysql-server all 5.5.31+dfsg-0+wheezy1 [83.6 kB]
Fetched 8,589 kB in 2s (3,068 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 52430 files and directories currently installed.)
Unpacking mysql-common (from .../mysql-common_5.5.31+dfsg-0+wheezy1_all.deb) ...
Selecting previously unselected package libmysqlclient18:amd64.
Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package libdbd-mysql-perl.
Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1+b1_amd64.deb) ...
Selecting previously unselected package mysql-client-5.5.
Unpacking mysql-client-5.5 (from .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server-core-5.5.
Unpacking mysql-server-core-5.5 (from .../mysql-server-core-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Processing triggers for man-db ...
Setting up mysql-common (5.5.31+dfsg-0+wheezy1) ...
Selecting previously unselected package mysql-server-5.5.
(Reading database ... 52616 files and directories currently installed.)
Unpacking mysql-server-5.5 (from .../mysql-server-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.5.31+dfsg-0+wheezy1_all.deb) ...
Processing triggers for man-db ...
Setting up libmysqlclient18:amd64 (5.5.31+dfsg-0+wheezy1) ...
Setting up libdbd-mysql-perl (4.021-1+b1) ...
Setting up mysql-client-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-core-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-5.5 (5.5.31+dfsg-0+wheezy1) ...
Stopping MySQL database server: mysqld.
131124 15:39:56 [Note] Plugin 'FEDERATED' is disabled.
131124 15:39:56 InnoDB: The InnoDB memory heap is disabled
131124 15:39:56 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131124 15:39:56 InnoDB: Compressed tables use zlib 1.2.7
131124 15:39:56 InnoDB: Using Linux native AIO
131124 15:39:56 InnoDB: Initializing buffer pool, size = 128.0M
131124 15:39:56 InnoDB: Completed initialization of buffer pool
131124 15:39:56 InnoDB: highest supported file format is Barracuda.
131124 15:39:56  InnoDB: Waiting for the background threads to start
131124 15:39:57 InnoDB: 5.5.31 started; log sequence number 1595675
131124 15:39:57  InnoDB: Starting shutdown...
131124 15:39:58  InnoDB: Shutdown completed; log sequence number 1595675
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Setting up mysql-server (5.5.31+dfsg-0+wheezy1) ...

1

键入sudo apt-get purge mysql-server && sudo apt-get install mysql-server是否无效,请在我的回答中留下评论,我将与您合作解决此问题。


0

12.04之后的所有Ubuntu版本的安装脚本都不会遵循与12.04相同的设置过程。在12.04中,明确要求您在安装过程中设置mysql密码。对于12.10及更高版本,它仅要求输入mysql根密码,但是该密码是什么?安装脚本是后退一步。我建议在虚拟机中安装12.04,然后在其中安装mysql。如果您像我一样,并且与Drupal一起使用,则绝对要坚持使用12.04。


0

对于仍然存在问题的人,提供不同的解决方案。希望我能帮助那些尝试重新安装Mysql的人。注意,这是一个寻找并摧毁的任务。所以要疲倦。假设您的根:

apt-get purge mysql*
apt-get purge dbconfig-common #the screen used for mysql password
find / -name *mysql*          #delete any traces of mysql
#insert apt-get cleanups, autoremove,updates etc.

最初,剩下的东西干扰了我的mysqlserver-5.5的启动。这些命令最终为我自己解决了这个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.