Ver código fonte

MySQL 8.0+ Support

Zoey76 6 anos atrás
pai
commit
0ac4798f7f

+ 2 - 2
build.gradle

@@ -21,8 +21,8 @@ dependencies {
 	compile 'com.jolbox:bonecp:0.8.0.RELEASE'
 	compile 'com.sun.mail:javax.mail:1.6.1'
 	compile 'com.zaxxer:HikariCP:3.2.0'
-	compile 'mysql:mysql-connector-java:6.0.6'
-	compile 'org.mariadb.jdbc:mariadb-java-client:2.2.6'
+	compile 'mysql:mysql-connector-java:8.0.12'
+	compile 'org.mariadb.jdbc:mariadb-java-client:2.3.0'
 	compile 'org.bitlet:weupnp:0.1.4'
 	compile 'com.google.code.gson:gson:2.8.5'
 	compile 'com.google.guava:guava:25.1-jre'

+ 6 - 6
src/main/java/com/l2jserver/Config.java

@@ -1162,10 +1162,10 @@ public final class Config
 			
 			DATABASE_ENGINE = serverSettings.getString("Database", "MySQL");
 			DATABASE_DRIVER = serverSettings.getString("Driver", "com.mysql.jdbc.Driver");
-			DATABASE_URL = serverSettings.getString("URL", "jdbc:mysql://localhost/l2jgs");
+			DATABASE_URL = serverSettings.getString("URL", "jdbc:mysql://localhost/l2jgs?useSSL=false&serverTimezone=UTC");
 			DATABASE_LOGIN = serverSettings.getString("Login", "root");
-			DATABASE_PASSWORD = serverSettings.getString("Password", "");
-			DATABASE_CONNECTION_POOL = serverSettings.getString("ConnectionPool", "C3P0");
+			DATABASE_PASSWORD = serverSettings.getString("Password", "toor");
+			DATABASE_CONNECTION_POOL = serverSettings.getString("ConnectionPool", "HikariCP");
 			DATABASE_MAX_CONNECTIONS = serverSettings.getInt("MaximumDbConnections", 10);
 			DATABASE_MAX_IDLE_TIME = serverSettings.getInt("MaximumDbIdleTime", 0);
 			
@@ -2731,7 +2731,7 @@ public final class Config
 			
 			ENABLE_UPNP = ServerSettings.getBoolean("EnableUPnP", true);
 			GAME_SERVER_LOGIN_HOST = ServerSettings.getString("LoginHostname", "127.0.0.1");
-			GAME_SERVER_LOGIN_PORT = ServerSettings.getInt("LoginPort", 9013);
+			GAME_SERVER_LOGIN_PORT = ServerSettings.getInt("LoginPort", 9014);
 			
 			LOGIN_BIND_ADDRESS = ServerSettings.getString("LoginserverHostname", "*");
 			PORT_LOGIN = ServerSettings.getInt("LoginserverPort", 2106);
@@ -2757,9 +2757,9 @@ public final class Config
 			LOGIN_SERVER_SCHEDULE_RESTART_TIME = ServerSettings.getLong("LoginRestartTime", 24);
 			
 			DATABASE_DRIVER = ServerSettings.getString("Driver", "com.mysql.jdbc.Driver");
-			DATABASE_URL = ServerSettings.getString("URL", "jdbc:mysql://localhost/l2jls");
+			DATABASE_URL = ServerSettings.getString("URL", "jdbc:mysql://localhost/l2jls?useSSL=false&serverTimezone=UTC");
 			DATABASE_LOGIN = ServerSettings.getString("Login", "root");
-			DATABASE_PASSWORD = ServerSettings.getString("Password", "");
+			DATABASE_PASSWORD = ServerSettings.getString("Password", "toor");
 			DATABASE_CONNECTION_POOL = ServerSettings.getString("ConnectionPool", "HikariCP");
 			DATABASE_MAX_CONNECTIONS = ServerSettings.getInt("MaximumDbConnections", 10);
 			DATABASE_MAX_IDLE_TIME = ServerSettings.getInt("MaximumDbIdleTime", 0);

+ 8 - 13
src/main/java/com/l2jserver/tools/util/SQLUtil.java

@@ -23,7 +23,6 @@ import java.io.FileNotFoundException;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.sql.Connection;
-import java.sql.Driver;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -37,7 +36,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Scanner;
-import java.util.TimeZone;
 
 import com.l2jserver.tools.util.io.FileWriterStdout;
 import com.l2jserver.util.file.filter.SQLFilter;
@@ -50,17 +48,14 @@ public final class SQLUtil
 {
 	public static Connection connect(String host, String port, String user, String password, String db) throws SQLException
 	{
-		try (Formatter form = new Formatter())
-		{
-			String url = form.format("jdbc:mysql://%s:%s", host, port).toString();
-			Driver driver = DriverManager.getDriver(url);
-			Properties info = new Properties();
-			info.put("user", user);
-			info.put("password", password);
-			info.put("useSSL", "false");
-			info.put("serverTimezone", TimeZone.getDefault().getID());
-			return driver.connect(url, info);
-		}
+		final String url = String.format("jdbc:mysql://%s:%s", host, port);
+		final Properties info = new Properties();
+		info.put("user", user);
+		info.put("password", password);
+		info.put("useSSL", "false");
+		info.put("serverTimezone", "UTC");
+		info.put("allowPublicKeyRetrieval", "true");
+		return DriverManager.getConnection(url, info);
 	}
 	
 	public static void close(Connection con)