數據庫設置_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;
  1. 執行CREATE USER語句以創建用于處理數據庫的MySQL用戶帳戶:
CREATE USER "tboronczyk"@"localhost" IDENTIFIED BY "P@$$W0rd";
  1. 執行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的新密碼時請考慮這些要求。

729d0810939f090c83d024d42c95ef0f.png

設置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/)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533871.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533871.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533871.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

提出離職后怎么定last day_不管你因為什么離職,用正規的離職方式是你最正確的選擇!...

#不管你是因為什么離職,用正規的離職方式離職是你最正確的選擇,如果因為不恰當的方式造成與公司的矛盾,可能讓你今后會非常被動。書面離職是最具有法律效力的,按照勞動法,你有權在提出正式離職一個月后走人&#xff0c…

mqtt php 16進制數據,phpMQTT 內存耗死問題

場景:(訂閱)鏈接不上mqtt的時候,一下代碼會出錯:function read($int 8192, $nb false){// print_r(socket_get_status($this->socket));$string"";$togo $int;if($nb){return fread($this->socket, $togo);}// var_dump($this->so…

人臉識別代碼_10行代碼實現人臉識別

什么是人臉識別人臉識別,是基于人的臉部特征信息進行身份識別的一種生物識別技術。用攝像機或攝像頭采集含有人臉的圖像或視頻流,并自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識…

ticketvalidationexception票根不符合目標服務_如何在有效降低企業倉儲成本的同時不降低企業的總體服務質量目標水平?...

對于企業而言,如何降低倉儲成本,同時要保證物流總成本最低和不降低企業的總體服務質量和目標水平的前提下進行,常見的措施有以下幾點:一用“先進先出方式,減少倉儲物的保管風險。”先進先出是儲存管理的準則之一&#…

matlab編程 英文翻譯,MATLAB編程,MATLAB programming,音標,讀音,翻譯,英文例句,英語詞典...

Image:114994698204558.jpgmatlabmatlab是矩陣實驗室(matrix laboratory)之意。除具備卓越的數值計算能力外,它還提供了專業水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。matlab的基本數據單位是矩陣,它的指令表達式…

python進群_Manim-python 進群問題之解答

事情起因人閑下來的時候總想找點事情做!這不,昨天考完試后在B站上逛,不小心進入了學習區,在00后學長那里看到了一個視頻。鏈接如下:具有美感的傅里葉級數居然還能夠畫畫!!!這讓我一個…

python科學計算_可視化圖解Python科學計算包NumPy

NumPy包是python生態系統中數據分析、機器學習和科學計算的主力。 它極大地簡化了向量和矩陣的操作。Python的一些主要軟件包依賴于NumPy作為其基礎架構的基礎部分(例如scikit-learn、SciPy、pandas和tensorflow)。我們將介紹一些使用NumPy的主要方法&am…

php 導出excel 特殊字符,PHPEXCEL導出,存在特殊字符遇到的問題

[13] > Array([payment_success_at] >[user_name] > ?.琳琳?[remarks] >[product_name] > 香菇[sku_name] > 斤[product_property] > 斤[price_original] > 5.50[price_current] > 5.50[consignee] > ?.琳琳?)以上代碼中用戶名中存在特殊符號…

win10任務欄怎么還原到下面_詳解:新版 WIN 10 V2004 任務欄和開始菜單全透明

是不是很酷炫?繼續往下看,你也可以簡單做到導語本文將告訴你如何借助一個小工具,將最新版 WIN 10 開始菜單和任務欄設置成全透明,以獲得超酷的視覺體驗。安裝和設置都很簡單,關鍵是一定要找到適合 WIN 10 版本的 Start…

php是靜態語言,Thinkphp靜態緩存多語言切換

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓1.首先判斷用戶有無手動指定語言2.從session中獲得當前語言3.session里面沒有則從cookie里面去取4.若是cookie里沒有,則根據IP段判斷5.若不在指定ip范圍內,自動偵測瀏覽器語言首先我們在Common/Conf/tags.ph…

10.8.8.8檸檬wifi網頁登錄_基于企業郵箱進行wifi實名認證的方案

之前我們介紹過如何用釘釘認證和企業微信認證來實現企業內部的實名上網認證。此外郵箱認證也是企業進行wifi實名認證的一個有效手段。因為很多企業都給員工開通了企業郵箱,直接讓員工輸入郵箱賬號和密碼進行認證上網。配置、使用和維護都相對比較簡單。本文我將介紹…

用pycharm寫python老是提示錯誤_python pycharm錯誤集錦

url:http://www.cnblogs.com/hinimix/p/8016859.html1, this list creation could be rewritten as a list literal預先定義了一個listlist1 [1,2,3,4] #這么用好比list1 [1,2,3] #這么用不好list1.append(4)此時會出現該提示解決鏈接:https://stackoverflow.com/…

php tire樹,Immutable.js源碼之List 類型的詳細解析(附示例)

本篇文章給大家帶來的內容是關于Immutable.js源碼之List 類型的詳細解析(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。一、存儲圖解我以下面這段代碼為例子,畫出這個List的存儲結構:let myL…

nodejs missing script: dev_nodejs深入學習系列之v8基礎篇

V8這個概念大家都不陌生了,那么你動手編譯過V8源碼嗎?編譯后有嘗試去了解V8背后的一些概念嗎?如果沒有,那么也不用心慌,下文將跟大家一一解釋這些東西。在編譯V8之前我們先要了解一個東西-構建系統1、構建系統1.1、構建…

cmos存儲器中存放了_天津大學姚建銓院士,張雅婷副教授JMCC:具有寬光譜調控特性的阻變存儲器...

【引言】存儲器是計算機中數據存放的主要介質。隨著5G時代到來,帶動人工智能、物聯網、智慧城市等應用市場發展并向存儲器提出多樣化需求,加上傳統存儲器市場價格變化等因素,新型存儲器將在市場發揮越來越重要的作用。因此具有存儲密度更高&a…

matlab轉差頻率控制,轉差頻率控制的異步電機調速系統的研究

1 引言交流變頻調速的方法是異步電機最有發展前途的調速方法。隨著電力電子技術、計算機技術和自動控制技術的不斷發展,交流電機變頻調速已經逐步取代直流電機調速,并經歷了采用電壓頻率協調控制、轉差頻率控制、矢量控制以及直接轉矩控制的發展過程。其…

python中標識符的命名規則_Python——標識符的命名規則

01 Python語言的特點 python的語言特點有很多,我們這里只講一點,python是一門面向對象的語言,即一切皆對象(Linux中有一句是:一切皆文件),括號內的只是打個比方,不懂也沒事&#xff…

python內置對象是什么_Python內置對象類型之數字類型

Python中有6種內置對象類型整數、浮點數–Number字符串–String列表–List元組–Tuple字典–Dictionary集合–Set不可變類型:Number、String、Tuple可變類型:List、Dictionary、Set知識點:變量和對象的關系–引用變量的使用數字類型的常見使用…

oracle的exp和imp,oracle exp和imp

--1.exp和imp的輸入都是名字和值對:如:exp parameter_namevalue 或exp parameter_name(value1,value2,value3..)--2.exp和imp都支持helpy選項。命令格式為:exp/imp helpy--3.exp中的參數:參數名稱 默認值 含義 建議compress Y 不壓縮導出數據的內容 comp…

python案例實操_用案例實操學習Python ,培養編程邏輯思維

案例一: A、B、C、D、E 五人在某天夜里合伙去捕魚,到第二天凌晨時都疲憊不堪,于是各自找地方睡覺。 日上三桿 A 第一個醒來,他將魚分為五份,把多余的一條魚扔掉,拿走自己的一份。 B 第二個醒來,…