From fe985dcb24154456254e252d1fa4a2b6b656ee80 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 25 Feb 2021 11:09:10 +1100 Subject: [PATCH] MariaDB: docs update + repo move (#1880) * mariadb: update "What is MariaDB?" Update description/license plege based on https://mariadb.org/about/ Update predominate users based on more recentl wikipedia links. Drop-in compatibility is considered by many as overstepping the mark, despite being moderately true, so limit the statement somewhat. * mariadb: change hosting repository * mariadb: replace logo From https://mariadb.org/wp-content/uploads/2019/01/mariadb_org_rgb_v.png * mariadb: reference JIRA for issues * mariadb: content reference mariadb command line and docs * mariadb: reference as MariaDB logs/configuration file * mariadb: change README-short.txt * mariadb: update maintainer * mariadb: add get-help.md * mariadb: *.sql.xz files initialization allowed * mariadb: network naming from #1860 --- mariadb/README-short.txt | 2 +- mariadb/content.md | 27 ++++++++++++++++----------- mariadb/get-help.md | 3 +++ mariadb/github-repo | 2 +- mariadb/issues.md | 1 + mariadb/logo.png | Bin 16832 -> 16087 bytes mariadb/maintainer.md | 2 +- 7 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 mariadb/get-help.md create mode 100644 mariadb/issues.md mode change 120000 => 100644 mariadb/maintainer.md diff --git a/mariadb/README-short.txt b/mariadb/README-short.txt index 4d5ba71da8c0..12378062037a 100644 --- a/mariadb/README-short.txt +++ b/mariadb/README-short.txt @@ -1 +1 @@ -MariaDB is a community-developed fork of MySQL intended to remain free under the GNU GPL. +MariaDB Server is a high performing open source relational databases, forked from MySQL. diff --git a/mariadb/content.md b/mariadb/content.md index b5117b5b91ed..9d9c747a5b42 100644 --- a/mariadb/content.md +++ b/mariadb/content.md @@ -1,10 +1,8 @@ # What is MariaDB? -MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. Being a fork of a leading open source software system, it is notable for being led by the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle. Contributors are required to share their copyright with the MariaDB Foundation. +MariaDB Server is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, DBS Bank and ServiceNow. -The intent is also to maintain high compatibility with MySQL, ensuring a "drop-in" replacement capability with library binary equivalency and exact matching with MySQL APIs and commands. It includes the XtraDB storage engine for replacing InnoDB, as well as a new storage engine, Aria, that intends to be both a transactional and non-transactional engine perhaps even included in future versions of MySQL. - -> [wikipedia.org/wiki/MariaDB](https://en.wikipedia.org/wiki/MariaDB) +The intent is also to maintain high compatibility with MySQL, ensuring a library binary equivalency and exact matching with MySQL APIs and commands. MariaDB developers continue to develop new features and improve performance to better serve its users. %%LOGO%% @@ -15,12 +13,19 @@ The intent is also to maintain high compatibility with MySQL, ensuring a "drop-i Starting a MariaDB instance is simple: ```console -$ docker run --name some-%%REPO%% -e MYSQL_ROOT_PASSWORD=my-secret-pw -d %%IMAGE%%:tag +$ docker run --port 127.0.0.1:3306:3306 --name some-%%REPO%% -e MYSQL_ROOT_PASSWORD=my-secret-pw -d %%IMAGE%%:tag +``` + +or: + +```console +$ docker network create some-network # Create the network +$ docker run --net some-network --name some-%%REPO%% -e MYSQL_ROOT_PASSWORD=my-secret-pw -d %%IMAGE%%:tag ``` -... where `some-%%REPO%%` is the name you want to assign to your container, `my-secret-pw` is the password to be set for the MySQL root user and `tag` is the tag specifying the MySQL version you want. See the list above for relevant tags. +... where `some-network` is newly created network (other than `bridge` as the default network), `some-%%REPO%%` is the name you want to assign to your container, `my-secret-pw` is the password to be set for the MariaDB root user and `tag` is the tag specifying the MariaDB version you want. See the list above for relevant tags. -## Connect to MariaDB from the MySQL command line client +## Connect to MariaDB from the MySQL/MariaDB command line client The following command starts another `%%IMAGE%%` container instance and runs the `mysql` command line client against your original `%%IMAGE%%` container, allowing you to execute SQL statements against your database instance: @@ -36,13 +41,13 @@ This image can also be used as a client for non-Docker or remote instances: $ docker run -it --rm %%IMAGE%% mysql -hsome.mysql.host -usome-mysql-user -p ``` -More information about the MySQL command line client can be found in the [MySQL documentation](http://dev.mysql.com/doc/en/mysql.html) +More information about the MariaDB command line client can be found in the [MariaDB Knowledge Base](https://mariadb.com/kb/en/mysql-command-line-client/) ## %%STACK%% Run `docker stack deploy -c stack.yml %%REPO%%` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). -## Container shell access and viewing MySQL logs +## Container shell access and viewing MariaDB logs The `docker exec` command allows you to run commands inside a Docker container. The following command line will give you a bash shell inside your `%%IMAGE%%` container: @@ -56,7 +61,7 @@ The log is available through Docker's container log: $ docker logs some-%%REPO%% ``` -## Using a custom MySQL configuration file +## Using a custom MariaDB configuration file The startup configuration is specified in the file `/etc/mysql/my.cnf`, and that file in turn includes any files found in the `/etc/mysql/conf.d` directory that end with `.cnf`. Settings in files in this directory will augment and/or override settings in `/etc/mysql/my.cnf`. If you want to use a customized MySQL configuration, you can create your alternative configuration file in a directory on the host machine and then mount that directory location as `/etc/mysql/conf.d` inside the `%%IMAGE%%` container. @@ -124,7 +129,7 @@ Currently, this is only supported for `MYSQL_ROOT_PASSWORD`, `MYSQL_ROOT_HOST`, # Initializing a fresh instance -When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql` and `.sql.gz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. +When a container is started for the first time, a new database with the specified name will be created and initialized with the provided configuration variables. Furthermore, it will execute files with extensions `.sh`, `.sql`, `.sql.gz`, and `.sql.xz` that are found in `/docker-entrypoint-initdb.d`. Files will be executed in alphabetical order. `.sh` files without file execute permission are sourced rather than executed. You can easily populate your `%%IMAGE%%` services by [mounting a SQL dump into that directory](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-file-as-a-data-volume) and provide [custom images](https://docs.docker.com/reference/builder/) with contributed data. SQL files will be imported by default to the database specified by the `MYSQL_DATABASE` variable. # Caveats diff --git a/mariadb/get-help.md b/mariadb/get-help.md new file mode 100644 index 000000000000..9f87e7b498d8 --- /dev/null +++ b/mariadb/get-help.md @@ -0,0 +1,3 @@ +[Database Adminstrators (Stack Exchange)](https://dba.stackexchange.com/questions/tagged/docker+mariadb), [MariaDB Knowledge Base](https://mariadb.com/kb/en/docker-and-mariadb/) ([Ask a Question here](https://mariadb.com/kb/en/docker-and-mariadb/ask) available). + +Also see the ["Getting Help with MariaDB" article on the MariaDB Knowledge Base](https://mariadb.com/kb/en/getting-help-with-mariadb/). diff --git a/mariadb/github-repo b/mariadb/github-repo index 5ef8d698b566..b8c401d9883d 100644 --- a/mariadb/github-repo +++ b/mariadb/github-repo @@ -1 +1 @@ -https://github.com/docker-library/mariadb +https://github.com/MariaDB/mariadb-docker diff --git a/mariadb/issues.md b/mariadb/issues.md new file mode 100644 index 000000000000..fc893a4f346e --- /dev/null +++ b/mariadb/issues.md @@ -0,0 +1 @@ +[https://jira.mariadb.org/](https://jira.mariadb.org/) under "MDEV" Project, and component "Packaging" or [GitHub](%%GITHUB-REPO%%/issues) diff --git a/mariadb/logo.png b/mariadb/logo.png index 5c4efbd9cb096382d4554e20ef5b6c0405dff44c..fb112daedcf938e47c5e10107097ea156ba41aa9 100644 GIT binary patch literal 16087 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� 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 literal 16832 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