Xlsx转MySQL报错

写Xlsx转MySQL脚本过程中的一些报错信息

1

相关脚本

Cursor.execute(“create database if not exists “ + Database)

报错信息

MySQLdb.OperationalError: (1044, “Access denied for user ‘***‘@’localhost’ to database ‘***’”)

报错原因

用这个用户进mysql创建数据库,也是这个错误,应该是这个用户没有权限创建数据库。
用以下两种方式可以查看用户权限

  1. show grants for '***'@'localhost';
    看到结果只有1个权限GRANT USAGE ON *.* TO '***'@'localhost'
    USAGE权限只能用于数据库登录,不能执行任何操作,所以报错是正常的。
  2. select * from mysql.user where user='***';
    看到结果是所有*_priv全部都是N,即所有权限都没有。

解决方法

更换一个有权限的用户连接数据库,或者赋予相应权限给当前用户。

2

相关脚本

Cursor.execute(“insert into “ + Sheet + “ (“ + Header + “) values(“ + Value + “)”)

报错信息

MySQLdb.ProgrammingError: (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘**********’ at line 1”)

报错原因

values里有特殊符号或MySQL的关键词?

解决方法

List_Value的字符串两侧加双引号

3

相关脚本

Cursor.execute(“create table if not exists “ + Sheet + “ (“ + Table_Header + “)”)

报错信息

MySQLdb.ProgrammingError: (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘****)’ at line 1”)

报错原因

报错信息里的***字符串是表头的一部分,前边是一个列名Check。Check是MySQL的关键词,有冲突,不能直接使用。

解决方法

列名两侧加`号(1左边的~按键)