134 lines
3.9 KiB
Markdown
134 lines
3.9 KiB
Markdown
## Install MySQL
|
||
- 下載MySQL: https://downloads.mysql.com/archives/installer/
|
||
- 安裝
|
||
- 安裝之後,執行MSQL Installer - Community
|
||
- ![[Pasted image 20210423152623.png]]
|
||
- 選擇MySQL Server的Reconfigure
|
||
- ![[Pasted image 20210423152747.png]]
|
||
- 依序設定port、帳號密碼。
|
||
|
||
## Install MariaDB
|
||
1. `sudo apt install mariadb-server`
|
||
2. Configuring MariaDB: `sudo mysql_secure_installation`
|
||
這步驟會問幾個問題,大概是:
|
||
1. 輸入目前root的密碼
|
||
2. 是否要切換為unix_socket? -> No
|
||
3. 要變更root的密碼嗎?-> No
|
||
3. Testing MariaDB: `sudo systemctl status mariadb`
|
||
4. Show version: `sudo mysqladmin version`
|
||
|
||
## Syntax
|
||
### Basic
|
||
login as root: `mysql -u root -p`
|
||
|
||
### User management
|
||
#### Create user
|
||
```sql
|
||
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'test123test!';
|
||
```
|
||
|
||
#### Remove user
|
||
```sql
|
||
DROP USER 'testuser'@'localhost';
|
||
```
|
||
|
||
#### Grant user's permission
|
||
Below commands grant user's permission to *CREATE* and *DROP*.
|
||
```sql
|
||
GRANT CREATE ON *.* TO 'testuser'@'localhost';
|
||
GRANT DROP ON tutorial_database.* TO 'testuser'@'localhost';
|
||
FLUSH PRIVILEGES;
|
||
```
|
||
|
||
#### Remove user's permission
|
||
```sql
|
||
REVOKE <permission> ON database.table FROM 'user'@'localhost';
|
||
```
|
||
上面命令中的`<permission>`必須替換成下面的其中一個:
|
||
- ALL - Allow complete access to a specific database. If a database is not specified, then allow complete access to the entirety of MySQL.
|
||
- CREATE - Allow a user to create databases and tables.
|
||
- DELETE - Allow a user to delete rows from a table.
|
||
- DROP - Allow a user to drop databases and tables.
|
||
- EXECUTE - Allow a user to execute stored routines.
|
||
- GRANT OPTION - Allow a user to grant or remove another user's privileges.
|
||
- INSERT - Allow a user to insert rows from a table.
|
||
- SELECT - Allow a user to select data from a database.
|
||
- SHOW DATABASES- Allow a user to view a list of all databases.
|
||
- UPDATE - Allow a user to update rows in a table.
|
||
|
||
例如:`REVOKE CREATE ON *.* FROM 'testuser'@'localhost';`
|
||
最後,不要忘記`FLUSH PRIVILEGES;`
|
||
|
||
#### Show user's permission
|
||
```sql
|
||
SHOW GRANTS FOR 'testuser'@'localhost';
|
||
```
|
||
|
||
#### Change user's password
|
||
```sql
|
||
ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
|
||
```
|
||
|
||
#### View all users
|
||
```sql
|
||
SELECT User,Host FROM mysql.user;
|
||
```
|
||
|
||
### Database
|
||
#### Show all databases
|
||
```sql
|
||
SHOW DATABASES;
|
||
```
|
||
|
||
### Create table
|
||
The rule:
|
||
```sql
|
||
CREATE TABLE table_name (column_name column_type);
|
||
```
|
||
|
||
Example:
|
||
```sql
|
||
CREATE TABLE tutorials_tbl(
|
||
tutorial_id INT NOT NULL AUTO_INCREMENT,
|
||
tutorial_title VARCHAR(100) NOT NULL,
|
||
tutorial_author VARCHAR(40) NOT NULL,
|
||
submission_date DATE,
|
||
PRIMARY KEY ( tutorial_id )
|
||
);
|
||
```
|
||
|
||
```sql
|
||
use autostation;
|
||
CREATE TABLE station_state(
|
||
id CHAR(255) NOT NULL,
|
||
ip CHAR(255) NOT NULL,
|
||
dhcp_ip CHAR(255) NOT NULL,
|
||
name CHAR(255) NOT NULL,
|
||
setupfilemd5 CHAR(255) NOT NULL,
|
||
setupfileversion CHAR(255) NOT NULL,
|
||
status CHAR(255) NOT NULL,
|
||
update_time DATETIME NOT NULL,
|
||
PRIMARY KEY ( id )
|
||
);
|
||
```
|
||
|
||
### Insert
|
||
The rule:
|
||
```
|
||
INSERT INTO <table_name> ( field1, field2,...fieldN )
|
||
VALUES
|
||
( value1, value2,...valueN );
|
||
```
|
||
|
||
Example:
|
||
```
|
||
INSERT INTO client_state ( field1, field2,...fieldN )
|
||
VALUES
|
||
( value1, value2,...valueN );
|
||
```
|
||
|
||
## 參考
|
||
- [Create a MySQL User on Linux via Command Line | Liquid Web](https://www.liquidweb.com/kb/create-a-mysql-user-on-linux-via-command-line/)
|
||
- [Grant Permissions to a MySQL User on Linux via Command Line | Liquid Web](https://www.liquidweb.com/kb/grant-permissions-to-a-mysql-user-on-linux-via-command-line/)
|
||
- [Remove Permissions for a MySQL User on Linux via Command Line - Liquid Web](https://www.liquidweb.com/kb/remove-permissions-for-a-mysql-user-on-linux-via-command-line/)
|
||
- [Remove a MySQL User on Linux via Command Line - Liquid Web](https://www.liquidweb.com/kb/remove-a-mysql-user-on-linux-via-command-line/) |