Mysql: Difference between revisions
Appearance
m links to mysql and mariadb and second example to differentiate between both engines |
just added a tips section for those who might need it, it includes `mycli` |
||
| Line 18: | Line 18: | ||
Setup and enable MariaDB database daemon (in this example: version 11.0) | Setup and enable MariaDB database daemon (in this example: version 11.0) | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix">services.mysql = { | ||
services.mysql = { | |||
enable = true; | enable = true; | ||
package = pkgs.mariadb_110; | package = pkgs.mariadb_110; | ||
}; | };</syntaxhighlight> | ||
</syntaxhighlight> | = Tips = | ||
install `mycli` to get autocompletion when working with mysql/mariadb | |||
<syntaxhighlight lang="nix">environment.systemPackages = [ pkgs.mycli ];</syntaxhighlight> | |||
= Maintenance = | = Maintenance = | ||
Revision as of 23:24, 22 October 2025
MySQL and MariaDB are installed via the same services.mysql configuration.
- MySQL is a widely used open source relational database management system (RDBMS) that offers various features, tools, and services for data warehousing, analytics, machine learning, and more.
- MariaDB is a popular and stable fork of MySQL that is compatible with MySQL and has additional enhancements and features.
Setup MySQL
Setup and enable Mysql database daemon (in this example: latest stable version in nixpkgs)
services.mysql = {
enable = true;
package = pkgs.mysql;
};
Setup MariaDB
Setup and enable MariaDB database daemon (in this example: version 11.0)
services.mysql = {
enable = true;
package = pkgs.mariadb_110;
};
Tips
install `mycli` to get autocompletion when working with mysql/mariadb
environment.systemPackages = [ pkgs.mycli ];
Maintenance
Upgrade
NixOS will not run mysql_upgrade automatically for you after upgrading to a new major version, because it is a "dangerous" operation (can lead to data corruption) and users are strongly advised (by MariaDB upstream) to backup their database before running mysql_upgrade.
mysqldump -u root -p --all-databases > alldb.sql
After backup is completed, you can proceed with the upgrade process
mysql_upgrade