使用chown命令将/var/lib/mysql的所有者从root更改后,在mysql中出现错误1049(42000)

9

我之前在Ubuntu上使用终端创建了一个MySQL数据库,使用以下代码:

$ my sql -u root -p

然后在mysql中:

CREATE DATABASE securities_master;

我试图使用文件浏览器查看与此数据库相关的内容。但是因为我没有权限打开文件夹/var/lib/mysql,所以我想更改此文件夹的权限。我在stackoverflow上进行了一些搜索,但由于我不完全理解我正在做什么,我使用了类似以下内容(我的用户名是wei):

sudo chown -R root:wei /var/lib/mysql

或(不幸的是,我当时已经关闭了终端窗口,所以不确定我输入了什么)

sudo chown -R wei:wei /var/lib/mysql

或者

sudo chown -R wei /var/lib/mysql

这让我可以查看目录并看到我的文件,所以我觉得我正在取得进展。然而,一旦我这样做了,我意识到当我尝试在mysql中使用数据库时:

USE securities_database;

我遇到了一个错误信息,类似于:

ERROR 1049 (42000): Unknown database 'securities_master'

我相信这与我之前使用chown命令有关。通过进一步搜索stackoverflow,我现在认为我不应该随意将某些文件的root所有权从root手中夺走,因为“可能会发生糟糕的事情”。我尝试使用以下命令恢复root所有权:

sudo chown -R root /var/lib/mysql

AND/OR:

sudo chown -R root:root /var/lib/mysql

但不幸的是,我好像仍然收到相同的错误消息。

如果我的问题看起来太基础,或者是一个初学者错误,那么请原谅,我对Ubuntu、Linux和mysql都是一位完全的新手。谢谢。


SHOW databases; 列出你创建的数据库吗? - Dez
出现了错误,因为我拥有的权限不正确,但是一旦按照@Barmar的建议进行修复,它确实显示了数据库,谢谢。 - Wei
1个回答

29

/var/lib/mysql 中所有内容的正常所有权应该是 mysql:mysql。因此,您应该能够通过以下方式解决问题:

chown -R mysql:mysql /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql

2
那个三行注释在我自己尝试了四个小时后,只用了10秒钟就解决了我的问题。我希望我能点赞(但是我的声望不到15),如果你住得离我近一些,我会请你喝啤酒的。再次感谢。 - Wei
我不懂Windows系统管理。 - Barmar
你是怎么意外改变所有权的?你应该能够用同样的命令将其改回来。 - Barmar
我遇到了问题 - 基本上MySQL服务器受到了勒索攻击。 我正在按照这篇文章进行数据库恢复: https://bobcares.com/blog/mysql-tablespace-is-missing-for-table/ 但是在第四步卡住了。 - Pervaiz Iqbal
你可以尝试在MySQL Windows安装文档中搜索这些信息。我查看了几页,没有看到关于所有权的任何内容。 - Barmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接