解决MySql error #1036 Table is read only 错误方法

上传好网站数据,解压,配置好数据库链接参数就行,网站就能正常连接上了,我本以为这已经是顺利迁移完成了,但后来操作的时候,发现只能读取数据库的内容,不能更改写入任何信息,提示#1036 – Table ‘* ‘ is read only (*号为任意表),也就是说表只有只读属性。
通过SSH,给数据库文件777权限,dedeadmin是我的数据库文件夹

chmod -R 0777 /usr/local/mysql/var/dedeadmin/

给数据库目录的所属用户和组改为MySQL

chown -R mysql:mysql dedeadmin

但是这样还不能更改数据库,首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 里面,还需要运行以下命令:

./mysqladmin -u root -p flush-tables

之后输入root账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完

-----------

centos中解决办法

1. 找到数据库文件放置的目录,如/usr/local/mysql/var/xx

2. 更改此数据库下所有文件的所有权:chown mysql.mysql *.*

3. 关闭mysql:killall mysqld

4. 开启mysql:进入mysql的bin目录,运行 ./mysqld_safe --user=mysql &

------------

前几天我把一个系统挂到服务器上,数据库出现了如下的错误提示

#1036 - Table ' ' is read only

 我把网站传到服务器上,把备份的数据库文件放到/usr/local/mysql/var下面之后,访问某个表时出现权限的问题,后来把数据库的权限改为777,把数据库目录的所属用户和组改为MySQL,错误依然存在。我采用了一下的方法解决了问题。

首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin下面。步骤如下:

#cd   /usr/local/mysql/bin

#./mysqladmin -u root -p flush-tables

然后输入你的数据库密码,没有任何的错误提示,说明你成功了

如果是linux可如下操作

nux下MySQL出现问题,提示mysql error #1036 - Table 'xxxx' is read only

解决方法:

1. 找到数据库文件放置的目录,如/usr/local/mysql/var/xx

2. 更改此数据库下所有文件的所有权:chown mysql.mysql *.*

3. 关闭mysql:killall mysqld

4. 开启mysql:进入mysql的bin目录,运行 ./mysqld_safe --user=mysql &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用pandas的`to_sql`方法将DataFrame写入MySQL数据库。首先需要安装相关的驱动,比如mysql-connector-python,然后使用以下代码: ``` import pandas as pd import mysql.connector # 连接数据库 conn = mysql.connector.connect(user='用户名', password='密码', host='主机地址', database='数据库名') # 创建一个示例DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # 将DataFrame写入数据库 df.to_sql(name='表名', con=conn, if_exists='replace', index=False) # 关闭数据库连接 conn.close() ``` 其中,`name`参数指定表名,`con`参数指定数据库连接,`if_exists`参数指定如果表已存在的处理方式,可以设置为`replace`、`fail`或`append`,`index`参数指定是否写入索引。 ### 回答2: pandas是一个强大的数据处理库,可以用于将数据导入到MySQL数据库中。以下是使用pandas将数据写入MySQL数据库的方法: 1. 首先,需要确保已安装pandas和MySQL驱动程序。可以使用以下命令安装它们: ``` pip install pandas pip install mysql-connector-python ``` 2. 导入所需的库和模块: ```python import pandas as pd import mysql.connector from mysql.connector import Error ``` 3. 建立与MySQL数据库的连接: ```python try: connection = mysql.connector.connect( host='localhost', database='your_database_name', user='your_username', password='your_password' ) if connection.is_connected(): cursor = connection.cursor() except Error as e: print("Error while connecting to MySQL", e) ``` 请注意替换上述代码中的数据库名称、用户名和密码为您自己的信息。 4. 读取数据到pandas的DataFrame: ```python data = pd.read_csv('your_csv_file.csv') # 从CSV文件中读取数据到DataFrame ``` 请将'your_csv_file.csv'替换为您要导入的CSV文件的路径和文件名。 5. 将数据写入MySQL数据库: ```python for i, row in data.iterrows(): sql = "INSERT INTO your_table_name (column1, column2, ...) VALUES (%s, %s, ...)" # 替换your_table_name和column1、column2等为您的表名和列名 values = (row['column1'], row['column2'], ...) # 替换column1、column2等为您的列名 try: cursor.execute(sql, values) connection.commit() except Error as e: print("Error while inserting data into MySQL", e) ``` 请注意替换上述代码中的表名和列名为您自己的信息。 6. 最后,关闭与MySQL数据库的连接: ```python if connection.is_connected(): cursor.close() connection.close() print("MySQL connection is closed") ``` 这就是使用pandas将数据写入MySQL数据库的基本方法。根据您的具体需求和数据格式,您可能需要对上述代码进行适当的修改。 ### 回答3: 使用pandas库将数据写入MySQL数据库可以通过以下步骤实现: 1. 首先,需要确保已经安装了pandas和MySQL-python(或pymysql)这两个库。 2. 导入必要的库: ```python import pandas as pd import MySQLdb ``` 3. 建立数据库连接: ```python conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='database') ``` 注意替换`localhost`为主机名,`root`为用户名,`password`为密码,`database`为数据库名。 4. 读取数据到pandas的DataFrame对象: ```python df = pd.read_csv('data.csv') ``` 注意替换`data.csv`为数据源文件的路径。 5. 将DataFrame对象中的数据写入MySQL数据库: ```python df.to_sql(name='table', con=conn, if_exists='replace', index=False) ``` 注意替换`table`为目标表的名称。 可选的参数`if_exists`指定了当表已经存在时的处理方式,`replace`表示替换原有的表,`append`表示追加数据到原有表,`fail`表示如果表已经存在则抛出异常,默认值为`fail`。 6. 关闭数据库连接: ```python conn.close() ``` 完成以上步骤后,数据将会被写入指定的MySQL数据库中。注意在运行代码之前,确保已经在MySQL中创建了目标表,并且表中的列名和数据在DataFrame对象中的列名一致,否则可能会出现错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值