Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL错误1036:表是只读的_Mysql_Phpmyadmin - Fatal编程技术网

MySQL错误1036:表是只读的

MySQL错误1036:表是只读的,mysql,phpmyadmin,Mysql,Phpmyadmin,当我试图使用phpmyadmin向表中插入一条记录时,它给了我 #1036 - Table 'sch_portfolio' is read only 我在一些文章中看到,他们说如果这个表的所有者不是mysql,那么可能会发生这种情况。因此,我将所有者设置为mysql并重新启动服务器。我还是犯了同样的错误。任何帮助都将不胜感激。提前谢谢 drwxrwxrwx 2 mysql mysql 4096 Jul 13 15:27 schooltap 要做到这一点需要超级用户权限,最常用的是s

当我试图使用phpmyadmin向表中插入一条记录时,它给了我

#1036 - Table 'sch_portfolio' is read only 
我在一些文章中看到,他们说如果这个表的所有者不是mysql,那么可能会发生这种情况。因此,我将所有者设置为mysql并重新启动服务器。我还是犯了同样的错误。任何帮助都将不胜感激。提前谢谢

drwxrwxrwx 2 mysql mysql     4096 Jul 13 15:27 schooltap

要做到这一点需要超级用户权限,最常用的是sudo

也可以更改文件的所有者

sudo chown -R mysql:mysql /var/lib/mysql
重新启动Mysql进行更改

sudo service mysql restart
谁拥有sch_portfolio,他们属于哪一组,应该是mysql:mysql。您还需要重新启动mysql以使更改生效

还要检查当前登录的用户是否有权访问更新

MySQL服务器以
用户MySQL
的身份运行,而不是以与我一起登录的用户的身份运行。为了让它访问仅具有用户权限的文件,这些文件必须由用户
'mysql'
拥有,因为这是服务器运行的方式。确保mysql使用的文件夹和文件属于用户“mysql”。这些文件位于
/var/lib/mysql
目录中。目录本身也应该属于
'mysql'

确保您没有设置
在my.cnf中,innodb_force_recovery>0据我所知,这是因为存储引擎。 如果
选择存储引擎为MRG_MYISAM
,那么这将使您的表仅
可读
,您无法插入数据。
因此,
选择myisam作为存储引擎

我怀疑在我的案例中,这是由隐藏的反恶意软件防病毒软件ByTevence(可能是与其他软件捆绑在一起)造成的。卸载此防病毒软件后,问题消失。

您可以更改存储引擎,这样就不必更换设置。如果您将其设置为InnoDB,您的问题应该得到解决。(在phpmyadmin的操作选项卡中更改为don)

我遇到了类似的问题,解决方法是将表文件的所有者/组更改为mysql。 你可以做两个选择

1. 首先,你必须进入你的服务器并获得特权

sudo su
然后我转到隐藏文件夹mysql,做:

cd /var/lib/mysql/
然后我运行了这个命令:

chown -R mysql:mysql *
这会解决你的问题

然后,要查看它是否有效,您必须重新启动mysql

service mysql restart
2. 或者,您可以简单地转到phpmyadmin,然后在数据库中选择所有表 然后您必须选择“修复”选项 (对不起,我得到了意大利语的phpmyadmin) 在bash中也可以这样做

这就行了!
如果没有任何选项,请尝试重新安装mysql

一个假设
mysqld
进程正在
mysql
用户下运行。该用户是否有权输入文件路径中的每个目录?您连接到mysqld的MySQL用户是否被授予写入表的权限?这种情况是只发生在一个表/数据库上,还是发生在所有表/数据库上?可能MySQL服务器处于只读模式,这是复制从属服务器经常遇到的情况-请检查。感谢您的回复。。但我已经做到了。我仍然收到相同的错误。/var/lib/mysql它本身是mysql的。用户组也设置为mysql。如何检查当前登录的用户是否具有更新的授权访问权限?从信息\u schema.user\u特权中选择*,其中被授权者类似于“'user%”;“chmod 755/var/lib/mysql”它在我的Mac电脑上工作,我的/mysql文件夹所在的地址不同。这解决了我的问题,而其他任何建议都没有帮助。非常感谢@dklovedoctor我尝试了这个,它开始工作,但我面临的问题是,我无法插入或更新任何表,因为它给我的错误是#1036 table“…”是只读的!我忘了我启用了它!谢谢你的建议@德乌汗,我想我可能帮不了你。但是,您可以检查mysql文件夹权限…相同的问题。我就要结束我的生命了。谢谢