Cannot connect to database

What happened?

A database error occurred, probably because your database connection is misconfigured. You will have to fix this problem and then restart or redeploy Roller before you can proceed. Here's what happened when Roller tried to establish a connection:

  • SUCCESS: Got parameters. Using configuration type JDBC_PROPERTIES
  • -- Using JDBC driver class: com.mysql.jdbc.Driver
  • -- Using JDBC connection URL: jdbc:mysql://makrokalender.se:3306/rollerdb
  • -- Using JDBC username: roller
  • -- Using JDBC password: [hidden]
  • SUCCESS: loaded JDBC driver class [com.mysql.jdbc.Driver]
  • ERROR: unable to obtain database connection. Likely problem: bad connection parameters or database unavailable.

Why did that happen?

In case the clues above are not enough to help you figure out what is going wrong, here are some more details. The root cause of the problem is an exception of type [java.sql.SQLException]

To help you debug the problem, here is the stack trace for that exception:

    [java.sql.SQLException: null,  message from server: "Host 'li310-233.members.linode.com' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2183)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:784)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:354)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
	at java.sql.DriverManager.getConnection(DriverManager.java:579)
	at java.sql.DriverManager.getConnection(DriverManager.java:190)
	at org.apache.roller.weblogger.business.DatabaseProvider.getConnection(DatabaseProvider.java:177)
	at org.apache.roller.weblogger.business.DatabaseProvider.<init>(DatabaseProvider.java:141)
	at org.apache.roller.weblogger.business.startup.WebloggerStartup.prepare(WebloggerStartup.java:171)
	at org.apache.roller.weblogger.ui.core.RollerContext.contextInitialized(RollerContext.java:141)
	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:766)
	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:406)
	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:758)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:242)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1233)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:701)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:475)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
	at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
	at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
	at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491)
	at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
	at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
	at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
	at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
	at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
	at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
	at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
	at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
	at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552)
	at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
	at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:75)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
	at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91)
	at org.eclipse.jetty.server.Server.doStart(Server.java:272)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
	at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1260)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1183)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.jetty.start.Main.invokeMain(Main.java:462)
	at org.eclipse.jetty.start.Main.start(Main.java:610)
	at org.eclipse.jetty.start.Main.main(Main.java:86)]