「MySQL」:修訂間差異
跳至導覽
跳至搜尋
(未顯示同一使用者於中間所作的 5 次修訂) | |||
第11行: | 第11行: | ||
=== 帳號 === | === 帳號 === | ||
開帳號以及開權限。我們現在會設定<code>skip-name-resolve</code>,這邊要注意<code>localhost</code>與<code>127.0.0.1</code>的差異(前者會 | 開帳號以及開權限。 | ||
由於我們現在會設定<code>skip-name-resolve</code>(減少連線所需要的時間),這邊要注意本地端的權限設定部分有<code>localhost</code>與<code>127.0.0.1</code>的差異(前者只剩下UNIX socket會對應到,而<code>127.0.0.1</code>則是對TCP socket的設定): | |||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
CREATE USER `trac`@`localhost` IDENTIFIED BY 'password_here'; | CREATE USER `trac`@`localhost` IDENTIFIED BY 'password_here'; | ||
CREATE USER `trac`@`127.0.0.1` IDENTIFIED BY 'password_here'; | |||
CREATE USER `trac`@`%` IDENTIFIED BY 'password_here'; | CREATE USER `trac`@`%` IDENTIFIED BY 'password_here'; | ||
GRANT ALL ON trac.* TO `trac`@`localhost`; | GRANT ALL ON trac.* TO `trac`@`localhost`; | ||
GRANT ALL ON trac.* TO `trac`@`127.0.0.1`; | |||
GRANT ALL ON trac.* TO `trac`@`%`; | GRANT ALL ON trac.* TO `trac`@`%`; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
第31行: | 第35行: | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
DROP USER 'trac'@'localhost'; | DROP USER 'trac'@'localhost'; | ||
DROP USER 'trac'@'%'; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
於 2025年5月11日 (日) 07:41 的最新修訂
MySQL是一套資料庫軟體。
常用指令
除了可以用官方內建的mysql
操作外,也可以用mycli
操作:
sudo apt install -y mycli; sudo apt clean
帳號
開帳號以及開權限。
由於我們現在會設定skip-name-resolve
(減少連線所需要的時間),這邊要注意本地端的權限設定部分有localhost
與127.0.0.1
的差異(前者只剩下UNIX socket會對應到,而127.0.0.1
則是對TCP socket的設定):
CREATE USER `trac`@`localhost` IDENTIFIED BY 'password_here';
CREATE USER `trac`@`127.0.0.1` IDENTIFIED BY 'password_here';
CREATE USER `trac`@`%` IDENTIFIED BY 'password_here';
GRANT ALL ON trac.* TO `trac`@`localhost`;
GRANT ALL ON trac.* TO `trac`@`127.0.0.1`;
GRANT ALL ON trac.* TO `trac`@`%`;
如果是只開讀取的權限:
GRANT SELECT ON trac.* TO `trac`@`localhost`;
GRANT SELECT ON trac.* TO `trac`@`%`;
刪除(同時也會移除權限):
DROP USER 'trac'@'localhost';
DROP USER 'trac'@'%';
只移除權限(單一資料庫或是全部),另外注意這邊的ALL, GRANT OPTION
不是分開的兩個權限:
REVOKE ALL, GRANT OPTION ON trac.* FROM 'trac'@'localhost';
REVOKE ALL, GRANT OPTION FROM 'trac'@'localhost';
改密碼:
SET PASSWORD = 'newPassword';
資料
開新的資料庫,這邊刻意使用utf8mb4
:
CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
測試集
MySQL官方有提供一些測試資料:
- Sakila,2006年釋出的範例,使用了許多不同的設計(包括view、trigger,以及foreign key與constraint),裡面的資料是模擬一個DVD的租賃系統。
相關連結
外部連結
- 官方網站 (英文)