写Xlsx转MySQL脚本过程中的一些报错信息
1
相关脚本
Cursor.execute(“create database if not exists “ + Database)
报错信息
MySQLdb.OperationalError: (1044, “Access denied for user ‘***‘@’localhost’ to database ‘***’”)
报错原因
用这个用户进mysql创建数据库,也是这个错误,应该是这个用户没有权限创建数据库。
用以下两种方式可以查看用户权限。
show grants for '***'@'localhost';
看到结果只有1个权限GRANT USAGE ON *.* TO '***'@'localhost'
。
USAGE权限只能用于数据库登录,不能执行任何操作,所以报错是正常的。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左边的~按键)