我必须重新构建服务器,并尝试将数据库文件从旧驱动器复制到/var/lib/mysql/。我重新启动了apache并运行了“显示数据库”,这个列表列出了所有的数据库。我输入了其中一个数据库“joomla”并运行了“显示表”--这显示了我所期望的所有表。
但是,尝试运行'SELECT * bsf_session‘这样的查询会导致错误:
ERROR 1146 (42S02): Table 'joomla.bsf_sessions' doesn't exist检查我得到的桌子:
mysql> check table bsf_seminar;
+--------------------+-------+----------+---------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------+-------+----------+---------------------------------------------------------+
| joomla.bsf_seminar | check | Error | Can't find file: './joomla/bsf_seminar.frm' (errno: 13) |
| joomla.bsf_seminar | check | error | Corrupt |
+--------------------+-------+----------+---------------------------------------------------------+
2 rows in set (0.00 sec)当我复制文件时,我更改权限以匹配mysql表的权限,但是无法更改所有权,这些文件当前看起来如下(ls -g):
-rw-rw---- 1 root 8842 2012-02-23 09:54 bsf_session.frm
-rw-rw---- 1 root 271012 2012-02-23 09:54 bsf_session.MYD
-rw-rw---- 1 root 25600 2012-02-23 09:54 bsf_session.MYI我试过逃跑
chown mysql bsf_session.frm但这没什么区别。我不知道这是否与主要问题有关。
我真的很感激你能给我的帮助..。
我是在堆叠溢出的时候问这个的,有人建议我也在这里问这个.
发布于 2012-02-23 15:47:49
如果MySQL服务器没有读取和写入文件的权限,则服务器将无法识别该表。通常,服务器在“mysql”用户下运行。
在尝试更改所有权之前,我将首先停止mysql实例。
一旦完成,那么(来自非根用户)在目录中使用文件执行sudo chown mysql bsf_session.*。
您还可以尝试更改组(sudo chgrp mysql bsf_session.*),但是将文件作为与服务器相同的所有者是最好的选择。
如果您没有sudo特权或根访问权限,那么您将需要联系谁让他们改变所有权。
https://dba.stackexchange.com/questions/13760
复制相似问题