MySQL错误1036:表是只读的

Dil*_*tha 9 mysql phpmyadmin

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

#1036 - Table 'sch_portfolio' is read only 
Run Code Online (Sandbox Code Playgroud)

我在一些文章中看到他们说如果这个表的所有者是mysql以外的东西,就会发生这种情况.所以我将所有者设置为mysql并重新启动服务器.我仍然得到同样的错误.任何帮助将非常感激.提前致谢

drwxrwxrwx 2 mysql mysql     4096 Jul 13 15:27 schooltap
Run Code Online (Sandbox Code Playgroud)

dkl*_*tor 26

确保你没有在my.cnf中设置innodb_force_recovery> 0

  • ^当其他建议都没有帮助时,这解决了我的问题。谢谢一吨! (2认同)

Gho*_*man 11

一个人需要超级用户权限来执行此操作,最常见的是sudo用于实现此目的.

按顺序也改变文件的所有者.

sudo chown -R mysql:mysql /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

重新启动Mysql以进行更改

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

谁拥有sch_portfolio,他们在哪个组,应该是mysql:mysql.你还需要重新启动mysql才能使更改生效

还要检查当前登录的用户是否具有GRANT访问权限

MySQL服务器正在运行,user mysql而不是我登录的用户.为了使它能够访问仅具有用户权限的文件,它们必须由用户拥有,‘mysql’因为这是服务器正在运行的内容.确保mysql使用的文件夹和文件属于用户'mysql'.这些文件位于/var/lib/mysql目录中.目录本身也应该属于‘mysql’.


小智 5

据我所知,这是因为存储引擎。如果select storage engine as MRG_MYISAM这只会使您的表变得唯一readable,则无法插入数据。所以,select myisam as storage engine..