89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
# MySQL Community Edition (CE) Cheat-Sheet
|
|
|
|
MySQL Community Edition is the freely downloadable version of the world's most popular open source database.
|
|
|
|
Project Homepage: [MySQL Community Edition](https://www.mysql.com/products/community/)
|
|
Documentation: [MySQL Docs](https://dev.mysql.com/doc/)
|
|
|
|
>_Editor's note:_ The MariaDB Project was forked from MySQL when [Sun Microsystems](https://en.wikipedia.org/wiki/Sun_Microsystems)' intellectual property [was acquired](https://en.wikipedia.org/wiki/Acquisition_of_Sun_Microsystems_by_Oracle_Corporation) by [Oracle](https://en.wikipedia.org/wiki/Oracle_Corporation). MariaDB still shares enormous inter-compatibility with MySQL functions and software interoperability, and performance at most scales is arguably indiscernible from MySQL CE. In this writers' opinion it is **not beneficial** in most cases to favor Oracle's monetized option over the GPL's MariaDB alternative.
|
|
|
|
---
|
|
## Installation
|
|
|
|
### Install MySQL on Debian/Ubuntu/Mint/Zorin/Deb forks
|
|
|
|
>[!warning]
|
|
> Common Debian repositories don't populate MySQL CE and require a vendor-provided repository available [here](https://dev.mysql.com/downloads/repo/apt/). The repo file in this example is current as of 2024-01-20.
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y lsb-release gnupg
|
|
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
|
|
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
|
|
sudo mkdir /var/lib/mysql
|
|
sudo apt update
|
|
sudo apt install -y mysql-community-server mysql-common mycli --install-recommends
|
|
sudo mysql_secure_installation
|
|
```
|
|
|
|
### Install MySQL on RHEL/Fedora/CentOS/Alma/Rocky
|
|
|
|
```bash
|
|
sudo dnf update
|
|
sudo dnf install -y mysql-server mysql-common mycli
|
|
sudo mysql_secure_installation
|
|
```
|
|
|
|
### Install MySQL on Arch/Manjaro/Arco/ Arch forks
|
|
|
|
>[!warning]
|
|
> Common Arch repositories don't populate MySQL CE and the vendor doesn't provide one. The packages are available in the [AUR](https://aur.archlinux.org/) but this is \***not recommended**\* for a production environment!!
|
|
|
|
##### Enable the AUR (if not already available)
|
|
|
|
>[!notice]
|
|
>_This **must** be done by a non-root user!_
|
|
```shell
|
|
git clone https://aur.archlinux.org/yay.git
|
|
cd yay
|
|
makepkg -si
|
|
```
|
|
##### Proceed with installation from the AUR
|
|
|
|
```bash
|
|
yay pacman -Syyu
|
|
yay -S mysql mysql-utilities mycli --noconfirm
|
|
sudo mysql_secure_installation
|
|
```
|
|
|
|
### Deploy MySQL in Docker
|
|
- [https://hub.docker.com/_/mysql/](https://hub.docker.com/_/mysql/)
|
|
- [https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/docker-mysql-getting-started.html](https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/docker-mysql-getting-started.html)
|
|
|
|
### Deploy MySQL in Kubernetes
|
|
- [https://dev.mysql.com/doc/mysql-operator/en/](https://dev.mysql.com/doc/mysql-operator/en/)
|
|
- [https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/](https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/)
|
|
|
|
---
|
|
## Create Administrative User
|
|
|
|
Access the MySQL command line by entering `mysql -u root -p` in the shell followed by the Database `root` password.
|
|
|
|
Create a new user `newuser` for the host `localhost` with a new `password`:
|
|
|
|
```sql
|
|
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
|
|
```
|
|
|
|
Grant all permissions to the new user
|
|
|
|
```sql
|
|
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
|
|
```
|
|
|
|
Update permissions
|
|
|
|
```sql
|
|
FLUSH PRIVILEGES
|
|
```
|