You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.5 KiB
Markdown

5 years ago
# MySQL
## Basic
5 years ago
* persist data : `/var/lib/mysql`
* `docker run -p -d 3306:3306 -v ./mysql-data:/var/lib/mysql mysql:latest`
* ```yml
version: "3.8"
services:
mysql:
image: mysql:5.7.31
volumes:
- data-volume:/var/lib/mysql
volumes:
data-volume:
```
* ```shell
// stop service
sudo /etc/init.d/mysql stop
// copy to new location
sudo cp -R -p /var/lib/mysql /newpath
// update folder location
sudo gedit /etc/mysql/my.cnf
// start service
sudo /etc/init.d/mysql restart
```
*
5 years ago
## SSH Tunneling
* to connect to db via SSH tunnel
```shell
$ ssh -L [local port]:[database host]:[remote port] [username]@[remote host]
// example
$ ssh -L 3306:rr-zf81fzm6ija52q623.mysql.kualalumpur.rds.aliyuncs.com:3306 tenghieyik@172.22.4.252
5 years ago
```
* dump
```mysql
sql> database_name < dump.sql
$ mysqldump db_name > backup.sql
// improve export speed
$ mysqldump --add-drop-table --add-locks --database db > db.sql
$ mysql --init-command="SET SESSION FOREIGN_KEY_CHECKS=0;SET UNIQUE_CHECKS=0;" -u root -p < Backup_Database.mysql
```
## Other
```sql
mysql> CREATE USER 'razerpay'@'%' IDENTIFIED BY 'razerpay-singapore';
mysql> GRANT All PRIVILEGES ON *.* TO 'razerpay'@'%';
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR 'razerpay'@'%';
mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'razerpay'@'%';
mysql> DROP USER 'razerpay'@'%';
// apply this for mysql-8 if encountered PublicKeyRetrieval error
mysql> ALTER USER 'razerpay'@'%' IDENTIFIED WITH mysql_native_password BY 'razerpay-singapore';
```