MySQL 使用者權限

MySQL 資料庫的使用者權限簡介 當使用以下語法建立一個新的 MySQL 使用者時, CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>'; 這個使用者在一開始沒有什麼權限。可以說,它什麼都不能做。 它無法讀取任何現有資料庫的資料,更不能修改資料。甚至無法建立新的資料庫。 如果要讓使用者做任何事情,你必須授予權限給它。 你可以使用 GRANT 命令來這麼做。 我們可以使用 GRANT <permission>,使用以下權限關鍵字: CREATE DROP DELETE INSERT SELECT UPDATE ALL PRIVILEGES 給使用者權限去建立新資料庫 GRANT CREATE ON *.* TO '<username>'@'localhost'; 給使用者權限在特定資料庫中建立新表格 GRANT CREATE ON <database>.* TO '<username>'@'localhost'; 給使用者權限讀取(查詢)特定資料庫 GRANT SELECT ON <database>.* TO '<username>'@'localhost'; 給使用者權限讀取特定資料庫的表格 GRANT SELECT ON <database>.<table> TO '<username>'@'localhost'; 給使用者權限在特定資料庫中插入、更新和刪除資料列 GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost'; 給使用者權限刪除特定資料庫的表格 GRANT DROP ON <database>.* TO '<username>'@'localhost'; 給使用者權限刪除資料庫 GRANT DROP ON *....

PostgreSQL vs. MySQL,一個比較

一個關於PostgreSQL和MySQL的快速比較。 在這篇文章中,我希望對PostgreSQL和MySQL進行高層次的比較。 PostgreSQL的一個主要賣點是其授權。 PostgreSQL是開源的,擁有GPL許可證,由PostgreSQL全球開發團隊社區擁有。 如今MySQL由Oracle擁有,並且有2種不同的許可證。其中一個是開源許可證,另一個是商業許可證。這並不意味著如果您想將MySQL用於商業項目,您就需要支付費用。商業許可證提供有償支持和由Oracle建立的附加軟體,這是與MySQL的深度整合。 還有一個完全開源的MySQL分支,叫做MariaDB,它在使用和品牌方面要遜於MySQL,但如果您更喜歡MySQL,並且擔心授權問題,那麼MariaDB是一個很好的替代品。 讓我們來談談功能。 大致上,MySQL和PostgreSQL的功能集是相等的。其中一個可能會做到另一個無法做到的事情,但我們談論的是非常高級的功能,這裡我不深入介紹。 兩者都是非常先進的資料庫管理系統,有著悠久的歷史。 兩者都支援SQL標準(雖然不完全),並在此基礎上添加了一些功能。兩者都遵守ACID(Atomicity,Consistency,Isolation,Durability)準則。 兩者都可以輕鬆地創建複製,兩者都非常安全,兩者都有廣泛的社區,可以解決您可能遇到的任何問題。 兩者都擁有大量的工具支持。 那麼該選擇哪一個呢?很難說。 除非您需要一個在其中一個資料庫中已實現的特定功能,而在另一個中未實現,否則我建議您選擇您已經熟悉的那個。 例如,如果您熟悉MySQL,並且使用過WordPress,那麼您可以繼續使用它(或者MariaDB)。 可能還取決於您希望在哪個平台上部署您的軟體。例如Heroku提供了內置的管理型PostgreSQL雲資料庫服務,這可能比自己管理資料庫伺服器更方便。

使用 MySQL 和 Node 的基礎操作

MySQL 是世界上最受歡迎的關聯式資料庫之一。了解如何在 Node.js 中使用它。 MySQL 是世界上最受歡迎的關聯式資料庫之一。 當然,Node 生態系統中有幾個不同的套件可以讓您與 MySQL 進行互動,存儲數據,檢索數據等等。 我們將使用 mysqljs/mysql,這個套件在 GitHub 上有超過 12,000 顆星並且存在多年。 安裝 Node mysql 套件 用以下指令安裝: npm install mysql 初始化數據庫連接 首先要引入套件: const mysql = require('mysql') 然後創建一個連接: const options = { user: 'the_mysql_user_name', password: 'the_mysql_user_password', database: 'the_mysql_database_name' } const connection = mysql.createConnection(options) 通過調用以下代碼來建立新的連接: connection.connect(err => { if (err) { console.error('An error occurred while connecting to the DB') throw err } }) 連接選項 在上面的例子中,options 對象包含了 3 個選項:...

在 macOS 上安裝 MySQL

逐步指南,使用 Homebrew 在 macOS 上安裝 MySQL 在 macOS 上,您可以使用 Homebrew 輕鬆地安裝 MySQL。 執行以下命令: brew install mysql 上述命令需要一段時間,然後將列印出類似於以下的內容: 現在,您可以通過運行以下命令來啟動 MySQL 服務器: brew services start mysql 現在,我們需要保護 MySQL 服務器。默認情況下,該服務器不帶有 root 密碼,因此我們需要確保其受到保護。 執行以下命令: mysql_secure_installation 該過程可能需要一段時間,但可以確保您獲得最佳的預設值: 由於我們使用 brew services start mysql 來啟動 MySQL,所以在您的 Mac 重新啟動時會重新啟動它。您可以運行以下命令: brew services stop mysql 來阻止這種情況發生,同時也可以立即停止 MySQL。 您還可以運行以下命令,以避免此 守護模式(這是我們稱呼始終在背景運行並在計算機重新啟動時重新啟動的程序): mysql.server start 這將啟動 MySQL 並使其一直運行,直到計算機關機,或者直到您運行以下命令: mysql.server stop 並且在重新啟動時不會重新啟動它。 這取決於您自己決定哪一種方式更適合您。 現在,您可以使用以下命令連接到服務器: mysql -u root -p 在運行此命令之後,您需要輸入 root 用戶密碼,完成後,您應該在屏幕上看到這個畫面: 可以使用 TablePlus 這款優秀的 GUI(圖形化界面)軟件與 SQLite 數據庫進行交互。...

在MySQL上創建用戶

一個快速的逐步指南,介紹如何在MySQL上創建用戶。 在安裝MySQL之後,您將擁有 root 用戶。 這是您可能使用的用戶來測試MySQL是否正常工作,但不應該將其用作其他用途的用戶。 為什麼呢?因為它具有過於強大的權限。 有了強大的權力就有了巨大的責任(說的是蜘蛛俠的叔叔)。 特別是,如果犯錯,就會有巨大的危險。 相反,您應該創建特定用戶,這些用戶只有執行其工作所需的權限,並且不再多。 與使用Linux或任何Unix系統一樣,您不希望使用 root 用戶,而是使用您自己的用戶帳戶。 要創建新用戶,使用 root 用戶連接到MySQL: mysql -u root -p 然後使用以下命令: CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>'; 例如,要創建一個名為 test_user,密碼為 test_password12A 的用戶,運行以下命令: CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A'; 命令應返回一行顯示 Query OK, 0 rows affected (X.XX sec): 如果您使用了無效密碼,系統將返回類似於 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 的錯誤消息。 在這種情況下,錯誤消息表示密碼不夠複雜,因為安裝MySQL時我告訴它使用某個密碼策略。 太好了!現在已經創建了用戶,我們可以使用該用戶連接到MySQL。 從命令行退出,只需輸入 QUIT,然後輸入: mysql -u test_user -p 現在如果我嘗試創建一個數據庫,將收到一個錯誤消息 ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing':...

資料模型

資料模型定義了如何給予資料一個結構,以及資料如何與其他資料相連接。 我們有許多不同類型的資料模型。它們可以分為兩個主要的類別:概念模型和邏輯模型。 最著名的概念模型是實體關係(Entity-Relationship)模型,也稱為 ER 模型。在設計階段,當您開始時最好使用此模型來組織資料,因為它最貼近我們思考的方式,並且不受任何特定實作的影響。 另一方面,邏輯模型更接近實作。 邏輯模型包括(包括但不限於): 關聯模型 階層模型 網狀模型 物件模型 從名稱就可以看出這些模型的實作方式:關聯模型使用表格,階層模型使用樹狀結構,網狀模型使用圖形,物件模型使用物件。 關聯模型是一個重要的邏輯模型,我們將在後面更詳細地介紹它,因為它是流行的關聯式資料庫(包括 PostgreSQL、MySQL、SQLite 和 SQL Server)的基礎。 概念模型和邏輯模型是兩個不同的工具。使用其中一個並不排除使用另一個。我們可以從概念模型開始,然後使用邏輯模型來實作它。