今天一个朋友将他 Windows 服务器上的一个PHP网站搬家到阿里云 Linux 服务器上,大部分页面正常,有一些接口出了问题。
经过排查,一部分问题是因为他的代码里忽略了文件名大小写的问题。而另一个问题,是无法向数据库里插入数据。于是,我把那行 $sql 打印出来,然后放到 MySQL 命令行下执行,出现了标题中的报错。
Table‘xxx’is read only
于是,豁然开朗,没有权限,文件没有权限写入。
他安装的宝塔面板,mysql 的数据文件在 /www/server/data/mysql 里面,所以只需要
chmod -R 777 /www/server/data/mysql
2、刷新表
对于宝塔面板是在进入 /www/server/mysql/bin,执行命令
mysqladmin -p flush-tables
然后OK啦,如果还是不行,可以尝试重启 MySQL
经过排查,一部分问题是因为他的代码里忽略了文件名大小写的问题。而另一个问题,是无法向数据库里插入数据。于是,我把那行 $sql 打印出来,然后放到 MySQL 命令行下执行,出现了标题中的报错。
Table‘xxx’is read only
于是,豁然开朗,没有权限,文件没有权限写入。
解决办法
1、给表赋予权限他安装的宝塔面板,mysql 的数据文件在 /www/server/data/mysql 里面,所以只需要
chmod -R 777 /www/server/data/mysql
2、刷新表
对于宝塔面板是在进入 /www/server/mysql/bin,执行命令
mysqladmin -p flush-tables
然后OK啦,如果还是不行,可以尝试重启 MySQL
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏