title: Seeding a mysql db with testcontainers
body: <p>I have a very simple situation: an existing mysql database in AWS that I want to test against using testcontainers.</p>
  
  <p>I have followed the official guideline (<a href="https://www.testcontainers.org/modules/databases/" rel="noreferrer">https://www.testcontainers.org/modules/databases/</a>) and its examples (<a href="https://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/junit/SimpleMySQLTest.java" rel="noreferrer">https://github.com/testcontainers/testcontainers-java/blob/master/modules/jdbc-test/src/test/java/org/testcontainers/junit/SimpleMySQLTest.java</a>), however I am not able to do load the dump created with mysqldump. </p>
  
  <p>Every time I got the following error: </p>
  
  <pre><code>Caused by: java.sql.SQLSyntaxErrorException: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
  </code></pre>
  
  <p>As suggested by other users, I have tried the following: </p>
  
  <pre><code>MySQLContainer mysql = (MySQLContainer) new MySQLContainer()
                  .withInitScript("foodmart_department.sql")
                  .withUsername("root")
                  .withPassword("test")
                  .withLogConsumer(new Slf4jLogConsumer(logger));
          mysql.start();
  </code></pre>
  
  <p>But it hangs for minutes and terminates with this error:</p>
  
  <pre><code>SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  SLF4J: Defaulting to no-operation (NOP) logger implementation
  SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  
          ℹ︎ Checking the system...
          ✔ Docker version should be at least 1.6.0
          ✔ Docker environment should have more than 2GB free disk space
  
  
  org.testcontainers.containers.ContainerLaunchException: Container startup failed
  
      at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:307)
      at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:287)
      at com.Foodmart.testSimple(Foodmart.java:22)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:628)
      at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:117)
      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:184)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:180)
      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:127)
      at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
      at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
      at java.util.ArrayList.forEach(ArrayList.java:1257)
      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
      at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
      at java.util.ArrayList.forEach(ArrayList.java:1257)
      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
      at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
      at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
      at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
      at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
      at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
      at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
      at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
      at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
      at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
      at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
  Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
      at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
      at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:300)
      ... 53 more
  Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
      at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:418)
      at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:302)
      at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
      ... 54 more
  Caused by: org.testcontainers.ext.ScriptUtils$UncategorizedScriptException: Failed to execute database script from resource [-- MySQL dump 10.13  Distrib 8.0.19, for osx10.14 (x86_64)
  --
  -- Host: mysql-technical-test.cq5i4y35n9gg.eu-west-1.rds.amazonaws.com    Database: foodmart
  -- ------------------------------------------------------
  -- Server version   5.7.26-log
  
  /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  /*!50503 SET NAMES utf8mb4 */;
  /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
  /*!40103 SET TIME_ZONE='+00:00' */;
  /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
  SET @@SESSION.SQL_LOG_BIN= 0;
  
  --
  -- GTID state at the beginning of the backup
  --
  
  SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
  
  --
  -- Table structure for table `department`
  --
  
  DROP TABLE IF EXISTS `department`;
  /*!40101 SET @saved_cs_client     = @@character_set_client */;
  /*!50503 SET character_set_client = utf8mb4 */;
  CREATE TABLE `department` (
    `department_id` int(11) NOT NULL,
    `department_description` varchar(30) NOT NULL,
    UNIQUE KEY `i_department_id` (`department_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  /*!40101 SET character_set_client = @saved_cs_client */;
  
  --
  -- Dumping data for table `department`
  --
  
  LOCK TABLES `department` WRITE;
  /*!40000 ALTER TABLE `department` DISABLE KEYS */;
  INSERT INTO `department` VALUES (1,'HQ General Management'),(2,'HQ Information Systems'),(3,'HQ Marketing'),(4,'HQ Human Resources'),(5,'HQ Finance and Accounting'),(11,'Store Management'),(14,'Store Information Systems'),(15,'Permanent Checkers'),(16,'Temp Checkers'),(17,'Permanent Stockers'),(18,'Temp Stockers'),(19,'Store Permanent Butchers');
  /*!40000 ALTER TABLE `department` ENABLE KEYS */;
  UNLOCK TABLES;
  ]
      at org.testcontainers.ext.ScriptUtils.executeDatabaseScript(ScriptUtils.java:375)
      at org.testcontainers.ext.ScriptUtils.executeDatabaseScript(ScriptUtils.java:313)
      at org.testcontainers.ext.ScriptUtils.runInitScript(ScriptUtils.java:302)
      at org.testcontainers.containers.JdbcDatabaseContainer.runInitScriptIfRequired(JdbcDatabaseContainer.java:240)
      at org.testcontainers.containers.JdbcDatabaseContainer.containerIsStarted(JdbcDatabaseContainer.java:154)
      at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:403)
      ... 56 more
  Caused by: org.testcontainers.exception.ConnectionCreationException: Could not obtain JDBC connection
      at org.testcontainers.jdbc.JdbcDatabaseDelegate.createNewConnection(JdbcDatabaseDelegate.java:34)
      at org.testcontainers.jdbc.JdbcDatabaseDelegate.createNewConnection(JdbcDatabaseDelegate.java:17)
      at org.testcontainers.delegate.AbstractDatabaseDelegate.getConnection(AbstractDatabaseDelegate.java:23)
      at org.testcontainers.jdbc.JdbcDatabaseDelegate.execute(JdbcDatabaseDelegate.java:42)
      at org.testcontainers.delegate.AbstractDatabaseDelegate.execute(AbstractDatabaseDelegate.java:34)
      at org.testcontainers.ext.ScriptUtils.executeDatabaseScript(ScriptUtils.java:362)
      ... 61 more
  Caused by: java.sql.SQLException: Could not create new connection
      at org.testcontainers.containers.JdbcDatabaseContainer.createConnection(JdbcDatabaseContainer.java:210)
      at org.testcontainers.jdbc.JdbcDatabaseDelegate.createNewConnection(JdbcDatabaseDelegate.java:31)
      ... 66 more
  </code></pre>
  
  <p>So, I am definitely doing something wrong to achieve something so simple. </p>