diff --git a/5.5/import_sql.sh b/5.5/import_sql.sh index f8a2ac6..306bae4 100755 --- a/5.5/import_sql.sh +++ b/5.5/import_sql.sh @@ -1,7 +1,7 @@ #!/bin/bash -if [[ $# -ne 2 ]]; then - echo "Usage: $0 " +if [[ $# -ne 3 ]]; then + echo "Usage: $0 " exit 1 fi @@ -11,9 +11,9 @@ sleep 5 echo " Started with PID $!" echo "=> Importing SQL file" -mysql -uadmin -p"$1" < "$2" +mysql -u"$1" -p"$2" < "$3" echo "=> Stopping MySQL Server" -mysqladmin -uadmin -p"$1" shutdown +mysqladmin -u"$1" -p"$2" shutdown echo "=> Done!" diff --git a/5.6/import_sql.sh b/5.6/import_sql.sh index f8a2ac6..306bae4 100755 --- a/5.6/import_sql.sh +++ b/5.6/import_sql.sh @@ -1,7 +1,7 @@ #!/bin/bash -if [[ $# -ne 2 ]]; then - echo "Usage: $0 " +if [[ $# -ne 3 ]]; then + echo "Usage: $0 " exit 1 fi @@ -11,9 +11,9 @@ sleep 5 echo " Started with PID $!" echo "=> Importing SQL file" -mysql -uadmin -p"$1" < "$2" +mysql -u"$1" -p"$2" < "$3" echo "=> Stopping MySQL Server" -mysqladmin -uadmin -p"$1" shutdown +mysqladmin -u"$1" -p"$2" shutdown echo "=> Done!" diff --git a/README.md b/README.md index a035ecd..0f33fa2 100644 --- a/README.md +++ b/README.md @@ -15,36 +15,36 @@ Usage To create the image `tutum/mysql`, execute the following command on the tutum-mysql folder: - docker build -t tutum/mysql 5.5/ + docker build -t tutum/mysql 5.5/ To run the image and bind to port 3306: - docker run -d -p 3306:3306 tutum/mysql + docker run -d -p 3306:3306 tutum/mysql The first time that you run your container, a new user `admin` with all privileges will be created in MySQL with a random password. To get the password, check the logs of the container by running: - docker logs + docker logs You will see an output like the following: - ======================================================================== - You can now connect to this MySQL Server using: + ======================================================================== + You can now connect to this MySQL Server using: - mysql -uadmin -p47nnf4FweaKu -h -P + mysql -uadmin -p47nnf4FweaKu -h -P - Please remember to change the above password as soon as possible! - MySQL user 'root' has no password but only allows local connections - ======================================================================== + Please remember to change the above password as soon as possible! + MySQL user 'root' has no password but only allows local connections + ======================================================================== In this case, `47nnf4FweaKu` is the password allocated to the `admin` user. -Remember that the `root` user has no password but it's only accesible from within the container. +Remember that the `root` user has no password but it's only accessible from within the container. You can now test your deployment: - mysql -uadmin -p + mysql -uadmin -p Done! @@ -55,11 +55,11 @@ Setting a specific password for the admin account If you want to use a preset password instead of a random generated one, you can set the environment variable `MYSQL_PASS` to your specific password when running the container: - docker run -d -p 3306:3306 -e MYSQL_PASS="mypass" tutum/mysql + docker run -d -p 3306:3306 -e MYSQL_PASS="mypass" tutum/mysql You can now test your deployment: - mysql -uadmin -p"mypass" + mysql -uadmin -p"mypass" The admin username can also be set via the MYSQL_USER environment variable. @@ -70,7 +70,7 @@ Mounting the database file volume In order to persist the database data, you can mount a local folder from the host on the container to store the database files. To do so: - docker run -d -v /path/in/host:/var/lib/mysql tutum/mysql /bin/bash -c "/usr/bin/mysql_install_db" + docker run -d -v /path/in/host:/var/lib/mysql tutum/mysql /bin/bash -c "/usr/bin/mysql_install_db" This will mount the local folder `/path/in/host` inside the docker in `/var/lib/mysql` (where MySQL will store the database files by default). `mysql_install_db` creates the initial database structure. @@ -78,7 +78,7 @@ Remember that this will mean that your host must have `/path/in/host` available After this you can start your mysql image but this time using `/path/in/host` as the database folder: - docker run -d -p 3306:3306 -v /path/in/host:/var/lib/mysql tutum/mysql + docker run -d -p 3306:3306 -v /path/in/host:/var/lib/mysql tutum/mysql Mounting the database file volume from other containers @@ -104,17 +104,17 @@ In order to migrate your current MySQL server, perform the following commands fr To dump your databases structure: - mysqldump -u -p --opt -d -B > /tmp/dbserver_schema.sql + mysqldump -u -p --opt -d -B > /tmp/dbserver_schema.sql To dump your database data: - mysqldump -u -p --quick --single-transaction -t -n -B > /tmp/dbserver_data.sql + mysqldump -u -p --quick --single-transaction -t -n -B > /tmp/dbserver_data.sql To import a SQL backup which is stored for example in the folder `/tmp` in the host, run the following: - sudo docker run -d -v /tmp:/tmp tutum/mysql /bin/bash -c "/import_sql.sh /tmp/") + sudo docker run -d -v /tmp:/tmp tutum/mysql /bin/bash -c "/import_sql.sh /tmp/" -Where `` is the root password set earlier and `` is the name of the SQL file to be imported. +Where `` and `` are the database username and password set earlier and `` is the name of the SQL file to be imported. Environment variables @@ -123,7 +123,7 @@ Environment variables `MYSQL_USER`: Set a specific username for the admin account (default 'admin') `MYSQL_PASS`: Set a specific password for the admin account. -Compatibliity Issues +Compatibiliity Issues -------------------- - Volume created by MySQL 5.6 cannot be used in MySQL 5.5 Images or MariaDB images