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

MYSQL数据库直接拷贝DATA数据库源文件的时候转移站点测试数据完整性问题出现的。拷贝DATA数据库文件搬迁网站,然后登陆PHPMYADMIN数据库管理面板进行修改数据库表的时候有出现"#1036 – Table is read only"问题。

出现这样的问题,应该是我们在拷贝DATA数据库文件包的时候出现文件权限变动问题,可以通过下面的方法解决。

第一、找到DATA数据库存在的目录

    /usr/local/mysql/data/

比如我的在这个目录,有些在/usr/local/mysql/var/目录,这个要根据我们实际的VPS配置环境决定。

    chmod -R 777 /usr/local/mysql/data/数据库文件夹/

设置数据库文件夹和文件的所有权限可写。

第二、修改用户组

    chown -R mysql:mysql 数据库文件夹

修改用户组。

第三、刷新数据

找到mysqladmin所在的目录,一般在/usr/local/mysql/bin下,具体我们也要找到,然后到当前目录下,执行下面命令。

    mysqladmin -u root -p flush-tables

然后会提示需要输入MYSQL ROOT密码,我们输入就可以。

最后,这样我们就可以解决问题。主要的技术点在于我们不同环境,不同目录的寻找,需要根据我们实际的环境找到定位文件目录,我自己操作后没有问题,如果你有问题留言看看。

转载于:https://my.oschina.net/u/1260221/blog/873120

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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对象中的列名一致,否则可能会出现错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值