日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库设置_CentOS7 - 设置MySQL数据库

發布時間:2025/3/8 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库设置_CentOS7 - 设置MySQL数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置MySQL數據庫

本文介紹如何在CentOS上執行流行的MySQL數據庫服務器的基本安裝。 MySQL是當今使用最廣泛的數據庫系統,它可以在許多不同的行業中找到,為動態網站和大型數據倉庫等各種產品提供數據存儲。

準備

此配方要求CentOS系統具有有效的網絡連接和管理權限,使用root帳戶或sudo。

怎么做

請按照以下步驟安裝MySQL并創建新數據庫:

  • 下載Oracle維護的MySQL存儲庫的存儲庫配置包:
curl -LO dev.mysql.com/get/mysql57-community-release-el7- 7.noarch.rpm
  • 安裝下載的包:
yum install mysql57-community-release-el7-7.noarch.rpm
  • 現在已經注冊了MySQL存儲庫,安裝mysql-community-serverpackage:
yum install mysql-community-server
  • 啟動MySQL服務器并使其在系統重新啟動時自動啟動:
systemctl start mysqld.servicesystemctl enable mysqld.service
  • 在系統的防火墻中打開端口3306以允許外部連接到MySQL:
firewall-cmd --zone=public --permanent --add-service=mysqlfirewall-cmd --reload
  • 從服務器的日志文件中檢索MySQL的root用戶的臨時密碼:
grep "temporary password" /var/log/mysqld.log
  • 使用mysqladmin為root設置新密碼。 當程序提示輸入當前密碼時,請輸入日志中的臨時密碼:
mysqladmin -u root -p password
  • 使用mysql使用root帳戶連接到MySQL服務器:
mysql -u root -p
  • 要創建新數據庫,請執行CREATE DATABASE語句:
CREATE DATABASE packt;
  • 執行CREATE USER語句以創建用于處理數據庫的MySQL用戶帳戶:
  • CREATE USER "tboronczyk"@"localhost" IDENTIFIED BY "P@$$W0rd";
  • 執行GRANT語句以為新數據庫的帳戶分配適當的權限:
  • GRANT CREATE, DROP, ALTER, LOCK TABLES, INDEX, INSERT, UPDATE, SELECT, DELETE ON packt.* TO "tboronczyk"@"localhost";
    • 執行FLUSH PRIVILEGES以指示MySQL重建其權限緩存:
    FLUSH PRIVILEGES;
    • 退出MySQL客戶端并返回終端:
    exit

    工作原理

    我們首先下載了在我們的系統上注冊Oracle維護的MySQL存儲庫的軟件包。 MySQL是從Oracle存儲庫安裝的,因為CentOS存儲庫安裝了MariaDB。 經過2008年至2010年的一系列收購,MySQL代碼庫和商標成為Oracle的財產。 對Oracle的管理和MySQL的未來的廣泛關注促使MySQL的一個原始開發人員分叉項目并啟動MariaDB。 2014年,Red Hat和CentOS存儲庫將MySQL替換為MariaDB的默認數據庫(歡迎來到開源政治領域)。

    注意

    MariaDB的目標是在GNU GPL許可下保持一個免費的開源項目,并成為MySQL的“增強型,替代品”。目前,兩者之間的差異對于臨時用戶來說可以忽略不計。但在分叉替換的世界中,主要是編程接口和通信協議保持兼容。核心功能最初可能保持不變,但隨著時間的推移,新功能會獨立添加,并且產品的功能集開始出現分歧。 MariaDB通過版本號的跳躍來承認這一點。 MariaDB 5.1提供與MySQL 5.1相同的功能,MariaDB 5.5 for MySQL 5.5也是如此。但是,MariaDB不打算實現MySQL 5.6的所有功能,并將其版本號更改為10.0。對于那些在家中保持分數的人來說,Oracle編寫的存儲庫在撰寫本文時主持了MySQL 5.7。 CentOS存儲庫目前提供MariaDB 5.5。

    托管軟件包的服務器假定人們使用Web瀏覽器下載文件并發出重定向以開始下載。由于我們使用curl,因此我們提供了-L參數來跟蹤重定向以到達實際的包:

    curl -LO dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

    接下來,我們安裝了下載的包。 一旦注冊了存儲庫,我們就可以使用mysql-community-server軟件包安裝MySQL。 該軟件包安裝服務器二進制文件,與MySQL一起使用的客戶端實用程序作為依賴項安裝:

    yum install mysql57-community-release-el7-7.noarch.rpmyum install mysql-community-server

    MySQL維護自己的用戶帳戶,其管理用戶名為root。 就像CentOS的root用戶一樣,您不應該將該帳戶用于常規活動; 它應該保留用于管理任務,例如創建新用戶,授予權限和刷新服務器的緩存。 其他權限較低的帳戶應該用于日常活動。 為了保護root帳戶,我們在第一次啟動MySQL服務器時隨機生成密碼。 我們需要搜索MySQL記錄密碼的日志文件,以便我們可以設置我們自己選擇的新密碼:

    grep "temporary password" /var/log/mysqld.log

    知道了臨時密碼,我們用mysqladmin來改變它。 -u選項提供MySQL帳戶的用戶名,-p提示我們輸入帳戶的密碼,password是實用程序用于更改密碼的子命令。 我們在提示輸入原始密碼時輸入了臨時密碼,然后我們被要求輸入并確認新密碼:

    mysqladmin -u root -p password

    注意

    root的隨機默認密碼是從MySQL 5.6開始的新行為,它將密碼寫入/root/.mysql_secret,而5.7將其寫入日志文件。 在舊版本中,因此由CentOS存儲庫安裝的MariaDB自5.5以來,密碼為空。 validate_password插件也在MySQL 5.7中激活。 它要求密碼為八個字符或更多,至少有一個數字,一個大寫和一個小寫字符,以及一個特殊字符(即標點符號)。 選擇root的新密碼時請考慮這些要求。

    設置root的永久密碼需要臨時密碼

    我們可以使用幾個客戶端連接到MySQL并與我們的數據庫進行交互。 這個配方使用了mysql,因為它默認安裝為依賴項。 同樣,-u標識帳戶的用戶名,-p提示我們輸入密碼:

    mysql -u root -p

    在交互模式下運行時,客戶端顯示我們提交SQL語句的提示mysql>。 在每次查詢之后,客戶端顯示服務器的響應,語句執行的時間以及服務器是否報告任何錯誤或警告。

    我們在提示符處發出了CREATE DATABASE語句,以創建名為packt的新數據庫:

    CREATE DATABASE packt;

    然后我們使用CREATE USER創建了一個新的用戶帳戶,以避免在我們的日常工作中使用root。 該帳戶名為tboronczyk,允許從localhost進行身份驗證:

    CREATE USER "tboronczyk"@"localhost" IDENTIFIED BY "P@$$w0rd";

    如果帳戶將從其他系統連接到服務器,則系統的主機名或IP地址可以替換localhost。 MySQL將每個用戶名和主機名對視為單獨的帳戶,例如tboronczyk @ localhost和tboronczyk @ 192.168.56.100是不同的帳戶,可以分配不同的權限。

    注意

    您可以在主機名中使用通配符來創建可以從多個系統連接的帳戶。 %通配符匹配零個或多個字符,因此可用于表示任何系統:

    CREATE USER "tboronczyk"@"%" IDENTIFIED BY "P@$$w0rd";

    創建新帳戶時沒有任何權限,因此我們必須通過執行GRANT語句來分配它們:

    GRANT CREATE, DROP, ALTER, LOCK TABLES, INSERT, UPDATE, SELECT, DELETE ON packt.* TO "tboronczyk"@"localhost";

    該語句為packt數據庫中的所有表(用*表示)分配以下權限:

    • CREATE: 這允許用戶創建數據庫和表
    • DROP: 這允許用戶刪除整個表和數據庫
    • ALTER: 這允許用戶更改現有表的定義
    • LOCK TABLES: 這允許用戶鎖定表以進行獨占讀或寫訪問INDEX: This allows the user to create table indexes
    • INSERT: 這允許用戶將記錄添加到表中
    • UPDATE: 這允許用戶更新表中的記錄
    • SELECT: 這允許用戶從表中檢索記錄
    • DELETE: 這允許用戶從表中刪除記錄

    完整的權限列表以及允許用戶執行的操作可以在http://dev.mysql.com/doc/refman/5.7/en/grant.html上的官方MySQL文檔中找到。

    接下來,我們指示MySQL使用FLUSH PRIVILEGES重建其權限緩存:

    FLUSH PRIVILEGES;

    當MySQL啟動時,它會將用戶和權限信息緩存在內存中(您將從第5章“管理文件系統和存儲”中回憶起,從內存讀取比從磁盤讀取要快得多),然后每次用戶執行時檢查緩存驗證他們是否具有足夠權限的操作。每當我們創建或刪除用戶帳戶或授予或撤銷帳戶的權限時,我們都需要告訴MySQL更新其緩存,否則我們的更改將在MySQL下次啟動時被忽視。

    當使用mysql連接到MySQL時,您可能經常使用其他選項調用它。常見選項是-h,如果MySQL在不同的系統上運行,它將標識遠程服務器的主機名或IP地址。 -e直接執行語句,而不是以交互方式啟動mysql。此外,要使用特定數據庫,可以在命令的其余部分之后給出名稱,也可以使用-D來指定它。以下示例通過連接到192.168.56.100上的MySQL服務器并對其sakila數據庫執行SELECT語句來演示所有這些:

    mysql -u tboronczyk -p -h 192.168.56.100 -D sakila -e "SELECT last_name, first_name FROM actor"

    See also

    Refer to the following resources for more information on working with MySQL:

    • The mysql manual page (man 1 mysql)
    • MySQL 5.7 reference manual (http://dev.mysql.com/doc/refman/5.7/en)
    • Jump Start MySQL (http://www.amazon.com/Jump-Start-MySQL-Timothy-Boronczyk/dp/0992461286)
    • MySQL Tutorial (http://www.mysqltutorial.org/)

    總結

    以上是生活随笔為你收集整理的数据库设置_CentOS7 - 设置MySQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。