{"id":18030865,"url":"https://github.com/atc0005/mysql2sqlite","last_synced_at":"2025-09-18T00:32:49.012Z","repository":{"id":37101127,"uuid":"293055199","full_name":"atc0005/mysql2sqlite","owner":"atc0005","description":"Mirror MySQL database tables to SQLite","archived":false,"fork":false,"pushed_at":"2024-12-05T08:51:15.000Z","size":8143,"stargazers_count":7,"open_issues_count":15,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-31T19:16:23.610Z","etag":null,"topics":["go","golang","mirror","mysql","nagios","nagios-plugin","plugin","sqlite","sync"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atc0005.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-05T10:43:04.000Z","updated_at":"2024-12-04T16:01:56.000Z","dependencies_parsed_at":"2023-02-16T17:46:18.173Z","dependency_job_id":"77a96c0f-fc90-4ab4-b5ed-f8fcc6ec23e0","html_url":"https://github.com/atc0005/mysql2sqlite","commit_stats":null,"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fmysql2sqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fmysql2sqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fmysql2sqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fmysql2sqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atc0005","download_url":"https://codeload.github.com/atc0005/mysql2sqlite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233433765,"owners_count":18675608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","mirror","mysql","nagios","nagios-plugin","plugin","sqlite","sync"],"created_at":"2024-10-30T09:15:24.781Z","updated_at":"2025-09-18T00:32:42.841Z","avatar_url":"https://github.com/atc0005.png","language":"Go","readme":"\n\u003c!-- omit in toc --\u003e\n# mysql2sqlite\n\nMirror MySQL database tables to local SQLite database.\n\n[![Latest Release](https://img.shields.io/github/release/atc0005/mysql2sqlite.svg?style=flat-square)](https://github.com/atc0005/mysql2sqlite/releases/latest)\n[![Go Reference](https://pkg.go.dev/badge/github.com/atc0005/mysql2sqlite.svg)](https://pkg.go.dev/github.com/atc0005/mysql2sqlite)\n[![go.mod Go version](https://img.shields.io/github/go-mod/go-version/atc0005/mysql2sqlite)](https://github.com/atc0005/mysql2sqlite)\n[![Lint and Build](https://github.com/atc0005/mysql2sqlite/actions/workflows/lint-and-build.yml/badge.svg)](https://github.com/atc0005/mysql2sqlite/actions/workflows/lint-and-build.yml)\n[![Project Analysis](https://github.com/atc0005/mysql2sqlite/actions/workflows/project-analysis.yml/badge.svg)](https://github.com/atc0005/mysql2sqlite/actions/workflows/project-analysis.yml)\n[![Build using Makefile Docker recipes](https://github.com/atc0005/mysql2sqlite/workflows/Build%20using%20Makefile%20Docker%20recipes/badge.svg)](https://github.com/atc0005/mysql2sqlite/actions/workflows/build-using-make-docker-recipes.yml)\n\n\u003c!-- omit in toc --\u003e\n## Table of Contents\n\n- [Project home](#project-home)\n- [Overview](#overview)\n  - [`mysql2sqlite`](#mysql2sqlite-1)\n  - [`check_mysql2sqlite`](#check_mysql2sqlite)\n- [Features](#features)\n- [Changelog](#changelog)\n- [Requirements](#requirements)\n  - [Building source code](#building-source-code)\n  - [Running](#running)\n- [Documentation](#documentation)\n  - [Assumptions](#assumptions)\n  - [Build applications](#build-applications)\n  - [Deploy applications](#deploy-applications)\n  - [Configure applications](#configure-applications)\n  - [Wrap-up](#wrap-up)\n- [License](#license)\n- [References](#references)\n\n## Project home\n\nSee [our GitHub repo][repo-url] for the latest code, to file an issue or\nsubmit improvements for review and potential inclusion into the project.\n\n## Overview\n\nThis repo contains tools used to mirror a remote MySQL database to a local\nSQLite database. Nearly all options are controlled via a YAML-formatted\nconfiguration file.\n\n| Tool Name            | Description                                                                                           |\n| -------------------- | ----------------------------------------------------------------------------------------------------- |\n| `mysql2sqlite`       | CLI app used to mirror a remote MySQL database to a local SQLite database.                            |\n| `check_mysql2sqlite` | Nagios plugin used to validate synchronization status between remote MySQL and local SQLite database. |\n\n### `mysql2sqlite`\n\nCLI app used to mirror a remote MySQL database to a local SQLite database.\nThis application can be run as a one-off task or via a cron job or other\nautomated means.\n\n### `check_mysql2sqlite`\n\nNagios plugin used to validate synchronization status between a remote MySQL\ndatabase and a local target SQLite database.\n\nThe output for this application is designed to provide the one-line summary\nneeded by Nagios for quick identification of a problem while providing longer,\nmore detailed information for use in email and Teams notifications\n([atc0005/send2teams](https://github.com/atc0005/send2teams)).\n\n## Features\n\n- CLI tool for mirroring MySQL database tables to SQLite database\n- Nagios plugin for validating mirrored SQLite database against the original\n  source\n- Configurable source database, destination database settings\n- Configurable connection retry, retry delay behavior\n- Configurable MySQL settings\n  - max open connections\n  - max idle connections\n  - max connection lifetime\n  - max idle connection time\n- Configurable SQLite settings\n  - busy timeout\n  - journal mode\n- Configurable logging settings\n  - level\n  - output \"target\" (`stdout`, `stderr`)\n  - format\n\nSee the ([configuration](docs/configure.md)) documentation for all supported\nsettings.\n\n## Changelog\n\nSee the [`CHANGELOG.md`](CHANGELOG.md) file for the changes associated with\neach release of this application. Changes that have been merged to `master`,\nbut not yet an official release may also be noted in the file under the\n`Unreleased` section. A helpful link to the Git commit history since the last\nofficial release is also provided for further review.\n\n## Requirements\n\nThe following is a loose guideline. Other combinations of Go and operating\nsystems for building and running tools from this repo may work, but have not\nbeen tested.\n\n### Building source code\n\nThese requirements are specific to Debian/Ubuntu-based distros. Packages will\nlikely be named differently for other distributions.\n\n- Go\n  - see this project's `go.mod` file for *preferred* version\n  - this project tests against [officially supported Go\n    releases][go-supported-releases]\n    - the most recent stable release (aka, \"stable\")\n    - the prior, but still supported release (aka, \"oldstable\")\n- `CGO_ENABLED=1` environment variable (if not set by default)\n  - requirement of SQLite database driver used\n- `GCC`\n- `GCC multilib`\n- `GCC for Windows` (`mingw-w64`)\n- `make`\n  - if using the provided `Makefile`\n- Docker *or* Podman\n  - Docker if using the `docker-*` container-specific recipes\n  - Podman if using the `podman-*` container-specific recipes\n\nBuild-specific tools are included in the build image used by the `docker-*` or\n`podman-*` Makefile recipes. They can also be used locally after first\ninstalling Go and `make` and then installing the tools by running `make\ndepsinstall`.\n\nSee the [build](docs/build.md) instructions for more information.\n\n### Running\n\n- Windows 10\n- Ubuntu Linux 18.04+\n\nSee official [Go install notes][go-docs-install] for specific operating\nsystems supported.\n\n## Documentation\n\n### Assumptions\n\nVarious assumptions are made in this documentation. These assumptions are made\nin order to provide a more complete example that illustrates how binaries\nprovided by this project may be used. Modify as you feel appropriate.\n\n### Build applications\n\nSee the [build](docs/build.md) instructions for more information.\n\nAs an alternative to building the binaries yourself, this project also\nperiodically provides binaries via new releases. If binaries for your platform\nare not provided, please [file an\nissue](https://github.com/atc0005/mysql2sqlite/issues/new) so that we may\nevaluate the requirements for providing those binaries with future releases.\n\n### Deploy applications\n\nSee the [deployment](docs/deploy.md) documentation for details.\n\n### Configure applications\n\nSee the [configure](docs/configure.md) doc for details.\n\n### Wrap-up\n\nSee the [wrap-up](docs/wrap-up.md) doc for remaining steps.\n\n## License\n\nFrom the [LICENSE](LICENSE) file:\n\n```license\nMIT License\n\nCopyright (c) 2020 Adam Chalkley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n## References\n\nVarious references used when developing this project can be found in our\n[references](docs/references.md) doc.\n\n\u003c!-- Footnotes here  --\u003e\n\n[repo-url]: \u003chttps://github.com/atc0005/mysql2sqlite\u003e  \"This project's GitHub repo\"\n\n[go-docs-install]: \u003chttps://golang.org/doc/install\u003e  \"Install Go\"\n\n[go-supported-releases]: \u003chttps://go.dev/doc/devel/release#policy\u003e \"Go Release Policy\"\n\n\u003c!-- []: PLACEHOLDER \"DESCRIPTION_HERE\" --\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatc0005%2Fmysql2sqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatc0005%2Fmysql2sqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatc0005%2Fmysql2sqlite/lists"}