Skip to content
This repository has been archived by the owner on Feb 3, 2024. It is now read-only.

SQL Error on startup v. 1.22.3 #1640

Closed
HammerHedd opened this issue Sep 2, 2014 · 4 comments
Closed

SQL Error on startup v. 1.22.3 #1640

HammerHedd opened this issue Sep 2, 2014 · 4 comments

Comments

@HammerHedd
Copy link

I get this error in my log on startup:

[18:16:38] [pool-11-thread-1/ERROR]: [PermissionsEx] Error occurred with PermissionsEx! Please post it to http://git.io/nJX5-A. Full error:
ru.tehkode.permissions.exceptions.PermissionBackendException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'unique'; check that column/key exists
at ru.tehkode.permissions.backends.sql.SQLBackend$1.performUpdate(SQLBackend.java:129)
at ru.tehkode.permissions.backends.PermissionBackend.performSchemaUpdate(PermissionBackend.java:90)
at ru.tehkode.permissions.backends.sql.SQLBackend.(SQLBackend.java:190)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at ru.tehkode.permissions.backends.PermissionBackend.getBackend(PermissionBackend.java:392)
at ru.tehkode.permissions.backends.PermissionBackend.getBackend(PermissionBackend.java:367)
at ru.tehkode.permissions.PermissionManager.createBackend(PermissionManager.java:713)
at ru.tehkode.permissions.PermissionManager.setBackend(PermissionManager.java:695)
at ru.tehkode.permissions.PermissionManager.initBackend(PermissionManager.java:772)
at ru.tehkode.permissions.PermissionManager.(PermissionManager.java:74)
at ru.tehkode.permissions.bukkit.PermissionsEx.onEnable(PermissionsEx.java:158)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404)
at org.dynmap.bukkit.permissions.PEXPermissions.create(PEXPermissions.java:24)
at org.dynmap.bukkit.DynmapPlugin.onEnable(DynmapPlugin.java:803)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404)
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:455)
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:389)
at net.minecraft.server.v1_7_R4.MinecraftServer.n(MinecraftServer.java:352)
at net.minecraft.server.v1_7_R4.MinecraftServer.g(MinecraftServer.java:326)
at net.minecraft.server.v1_7_R4.MinecraftServer.a(MinecraftServer.java:282)
at net.minecraft.server.v1_7_R4.DedicatedServer.init(DedicatedServer.java:189)
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:436)
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'unique'; check that column/key exists
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
at com.mysql.jdbc.Util.getInstance(Util.java:382)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)
at ru.tehkode.libs.org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at ru.tehkode.libs.org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
at ru.tehkode.permissions.backends.sql.SQLBackend$1.performUpdate(SQLBackend.java:124)
... 29 more

Permissions seem to be operating otherwise, though, so I'm not sure what it is trying to do that is causing the error. Obviously something with the SQL server, but what?

@HammerHedd
Copy link
Author

This also occurs under 1.22.4. I looked at my database (MySQL) and I have three tables: permissions, permissions_entity, and permissions_inheritance. None of these have a column called "unique", so I'm not sure what PEX is trying to do when changing the schema. Does it need to stop looking for a column that is (probably) already dropped?

@HammerHedd
Copy link
Author

After looking through the code (sorry, I'm not a java coder, so I' might be in the wrong place), it seems that the error is in addSchemaUpdate(new SchemaUpdate(2). I believe the purpose of this is to convert all of the columns to utf8mb4_general_ci datatypes. I checked the database, and indeed, all of he columns are already converted (except the integers, but you probably guessed that). So, that being the case, do I just need to change the number in schema_version to 2 and all will be well?

Or am I completely off base with what I >think< I'm reading in the code? :P

@zml2008
Copy link
Member

zml2008 commented Sep 6, 2014

I'm assuming that some error occurs while updating the database schema version. You should be able to change the value to 2 and this error should go away.

@HammerHedd
Copy link
Author

After changing the version number to 2, the error is gone and everything seems to be running smoothly. Thanks for your help.. I learned a bit about the code in the process :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants