SHOW DATABASES;
CREATE DATABASE MySQLDATA CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE MySQLDATA;
SHOW TABLES;
CREATE TABLE MYTABLE (
name VARCHAR(20),
sex CHAR(1)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DESCRIBE MYTABLE;
-- 或
SHOW COLUMNS FROM MYTABLE;
INSERT INTO MYTABLE VALUES ('hyq', 'M');
LOAD DATA LOCAL INFILE 'D:/MySQL.txt' INTO TABLE MYTABLE;
USE database_name;
SOURCE D:/MySQL.sql;
DROP TABLE MYTABLE;
TRUNCATE TABLE MYTABLE; -- 效能優於 DELETE
-- 或
DELETE FROM MYTABLE;
UPDATE MYTABLE SET sex='f' WHERE name='hyq';
net start mysql / net stop mysqlsystemctl start mysqld / systemctl stop mysqld(或 /etc/init.d/mysqld start)-- 登入 MySQL
mysql -u root -p
-- 切換到 mysql 系統庫
USE mysql;
-- 刪除匿名帳號
DELETE FROM user WHERE User='';
-- 設定 root 密碼
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
現代版本(MySQL 5.7+/8.0)建議使用:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
UPDATE user SET Host='192.168.1.%' WHERE User='root';
FLUSH PRIVILEGES;
-- 全庫全權限
GRANT ALL ON mydb.* TO 'newuser'@'%' IDENTIFIED BY 'password';
-- 僅特定權限
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'newuser'@'%' IDENTIFIED BY 'password';
-- 僅特定資料表
GRANT UPDATE, DELETE ON mydb.TestTable TO 'newuser'@'%' IDENTIFIED BY 'password';
-- 授予授權權限
GRANT ALL ON mydb.* TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
REVOKE DELETE ON mydb.* FROM 'newuser'@'%';
FLUSH PRIVILEGES;
| 權限 | 說明 |
|---|---|
| SELECT | 查詢資料 |
| INSERT | 新增資料 |
| UPDATE | 修改資料 |
| DELETE | 刪除資料 |
| CREATE | 建立資料庫/資料表 |
| DROP | 刪除資料庫/資料表 |
| INDEX | 建立/刪除索引 |
| ALTER | 修改資料表結構 |
| FILE | 讀寫伺服器檔案 |
| PROCESS | 檢視/終止其他執行緒 |
| SHUTDOWN | 關閉 MySQL 服務 |
| RELOAD | 重載權限表、刷新日誌 |
| ALL | 所有權限(等同 root) |
| USAGE | 僅允許連線,無任何操作權限 |