本文目錄一覽:
- 1、mysql資料庫的存放位置在哪裡
- 2、Centos7下使用yum安裝mysql資料庫的詳細教程(增強版)
- 3、有資料庫基礎,如何快速精通mysql?
- 4、Mysql是一種什麼類型的資料庫
- 5、MySQL性能調優 – 你必須了解的15個重要變數
mysql資料庫的存放位置在哪裡
資料庫文件默認存放位置:C:\Program Files\MySQL\MySQL Server 5.0\data。
資料庫的配置文件在C:\Program Files\MySQL\MySQL Server 5.0\my.ini。
在data文件夾里找到不test的資料庫文件夾和自己創建的文件夾是因為test資料庫是空的資料庫,用於測試使用,自己的文件夾需要去mysql資料庫尋找。
mysql資料庫文件默認存放位置:C:\Program Files\MySQL\MySQL Server 5.0\mysql。
MySQL是一種開放源代碼的關係型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言–結構化查詢語言(SQL)進行資料庫管理。
下面詳細介紹幾個找不同資料庫用到的命令:
1、選擇你所創建的資料庫
mysql USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)
2、:使用SHOW語句找出在伺服器上當前存在什麼資料庫
mysql SHOW DATABASES;
3、查看現在的資料庫中存在什麼表
mysql SHOW TABLES;
4、顯示錶的結構。
mysql DESCRIBE MYTABLE;
擴展資料:
mysql資料庫伺服器有三個資料庫:information_schema資料庫,mysql資料庫,test資料庫。
1、nformation_schema資料庫:這個資料庫保存了mysql伺服器所有資料庫的信息。比如資料庫的名、資料庫的表、訪問許可權、資料庫表的數據類型,資料庫索引的信息等等。就是關於這個資料庫的點點滴滴信息都存儲在這個資料庫中。
nformation_schema資料庫是MySQL自帶的,它提供了訪問資料庫元數據的方式。什麼是元數據呢?元數據是關於數據的數據,如資料庫名或表名,列的數據類型,或訪問許可權等。有些時候用於表述該信息的其他術語包括「數據詞典」和「系統目錄」。
在MySQL中,把 information_schema 看作是一個資料庫,確切說是信息資料庫。其中保存著關於MySQL伺服器所維護的所有其他資料庫的信息。
如資料庫名,資料庫的表,表欄的數據類型與訪問權 限等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,將無法看到與之相關的任何文件。
2、mysql資料庫:這個資料庫中是mysql資料庫中的所有的信息表。
這個是mysql的核心資料庫,類似於sql server中的master表,主要負責存儲資料庫的用戶、許可權設置、關鍵字等mysql自己需要使用的控制和管理信息。不可以刪除,如果對mysql不是很了解,也不要輕易修改這個資料庫裡面的表信息。
3、test資料庫:空的資料庫,用於測試用。
這個是安裝時候創建的一個測試資料庫,和它的名字一樣,是一個完全的空資料庫,沒有任何錶,可以刪除。
參考資料:百度百科-MySQL資料庫
參考資料:百度百科-mySQL
參考資料:百度百科-test
Centos7下使用yum安裝mysql資料庫的詳細教程(增強版)
在之前給大家分享過這篇文章:CentOS
7.0下使用yum安裝mysql的方法詳解,小編覺得不夠詳細,今天給大家通過本文給大家做個補充,感興趣的朋友可以參考下。
1.
下載mysql的repo源
$
wget
2.
安裝mysql-community-release-el7-5.noarch.rpm包
$
sudo
rpm
-ivh
mysql-community-release-el7-5.noarch.rpm
安裝這個包後,會獲得兩個mysql的yum
repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3.
安裝mysql
$
sudo
yum
install
mysql-server
根據步驟安裝就可以了,不過安裝完成後,沒有密碼,需要重置密碼。
4.
重置密碼
重置密碼前,首先要登錄
$
mysql
-u
root
登錄時有可能報這樣的錯:ERROR
2002
(HY000):
Can『t
connect
to
local
MySQL
server
through
socket
『/var/lib/mysql/mysql.sock『
(2),原因是/var/lib/mysql的訪問許可權問題。下面的命令把/var/lib/mysql的擁有者改為當前用戶:
$
sudo
chown
-R
openscanner:openscanner
/var/lib/mysql
然後,重啟服務:
$
service
mysqld
restart
5.
防火牆設置,開放3306埠
firewall-cmd
–permanent
–zone=public
–add-port=3306/tcp
firewall-cmd
–permanent
–zone=public
–add-port=3306/udp
firewall-cmd
–reload
6.
mysql安全設置
mysql_secure_installation;
MySQL
會提示你重置
root
密碼,移除其他用戶賬號,禁用
root
遠程登錄,移除
test
資料庫,重新載入
privilege
表格等。
7.
創建遠程訪問用戶
–實施環境用戶
CREATE
USER
‘dbuser’@’%’
IDENTIFIED
BY
‘123456’;
GRANT
SELECT,INSERT,UPDATE,DELETE
ON
*.*
TO
‘dbuser’@’%’;
–管理員用戶
CREATE
USER
‘admin’@’%’
IDENTIFIED
BY
‘123456’;
CREATE
USER
‘admin’@’%’
IDENTIFIED
BY
‘123456’;
GRANT
ALL
ON
*.*
TO
‘admin’@’%’;
flush
privileges;
8.
更改數據存放目錄
mkdir
/home/data
–關閉mysql服務進程
systemctl
status
mysqld
mv
/var/lib/mysql
/home/data
修改
/etc/my.cnf
文件
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
以上所述是小編給大家介紹的Centos7下使用yum安裝mysql資料庫的詳細教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
有資料庫基礎,如何快速精通mysql?
本周內容:455字
閱讀時間:3~5分鐘
前言
MySQL 是一款免費開源、小型、關係型資料庫管理系統。隨著該資料庫功能不斷完善、性能的不斷提高,可靠性不斷增強。它雖然是免費,但與其他商業資料庫一樣,具有資料庫系統的通用性,提供了資料庫的存取、增加、修改、刪除或更加複雜的操作。同時MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
下面開始介紹搭建的過程
一、準備環境
系統:
Centos 6.5_64
二、安裝過程
1.yum -y install mysql-server
2.設置服務開機啟動
3.啟動資料庫服務
4.設置MySQLroot用戶
5.設置root用戶密碼為
6.登錄資料庫
7.創建資料庫test1
8.建立資料庫表格,xm姓名,xb性別,csny出生年齡
9增加資料庫條目記錄,姓名:李一,性別:男年齡:1988.9.01
書籍推薦
《MySQL 5.7從入門到精通》
本書主要包括MySQL的安裝與配置、資料庫的創建、數據表的創建、數據類型和運算符、MySQL函數、查詢數據、數據表的操作(插入、更新與刪除數據)、索引、存儲過程和函數、視圖、觸發器、用戶管理、數據備份與恢復、日誌以及性能優化等。最後通過兩個綜合案例的資料庫設計,進一步講述MySQL在實際工作中的應用。
本書注重實戰操作,幫助讀者循序漸進地掌握MySQL中的各項技術。本書共有480個實例和14個綜合案例,還有大量的經典習題。下載文件中贈送了近20小時培訓班形式的視頻教學錄像,詳細講解了書中每一個知識點和每一個資料庫操作的方法和技巧。同時下載文件中還提供了本書所有例子的源代碼,讀者可以直接查看和調用。
本書適合MySQL資料庫初學者、MySQL資料庫開發人員和MySQL資料庫管理員,同時也能作為高等院校相關專業師生的教學用書。
讓閱讀成為習慣
Mysql是一種什麼類型的資料庫
MySQL是一個小型關係型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購.對於Mysql的前途,沒有任何人抱樂觀的態度.目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。
MySQL性能調優 – 你必須了解的15個重要變數
前言:
MYSQL 應該是最流行了 WEB 後端資料庫。雖然 NOSQL 最近越來越多的被提到,但是相信大部分架構師還是會選擇 MYSQL 來做數據存儲。本文作者總結梳理MySQL性能調優的15個重要變數,又不足需要補充的還望大佬指出。
1.DEFAULT_STORAGE_ENGINE
如果你已經在用MySQL 5.6或者5.7,並且你的數據表都是InnoDB,那麼表示你已經設置好了。如果沒有,確保把你的錶轉換為InnoDB並且設置default_storage_engine為InnoDB。
為什麼?簡而言之,因為InnoDB是MySQL(包括Percona Server和MariaDB)最好的存儲引擎 – 它支持事務,高並發,有著非常好的性能表現(當配置正確時)。這裡有詳細的版本介紹為什麼
2.INNODB_BUFFER_POOL_SIZE
這個是InnoDB最重要變數。實際上,如果你的主要存儲引擎是InnoDB,那麼對於你,這個變數對於MySQL是最重要的。
基本上,innodb_buffer_pool_size指定了MySQL應該分配給InnoDB緩衝池多少內存,InnoDB緩衝池用來存儲緩存的數據,二級索引,臟數據(已經被更改但沒有刷新到硬碟的數據)以及各種內部結構如自適應哈希索引。
根據經驗,在一個獨立的MySQL伺服器應該分配給MySQL整個機器總內存的80%。如果你的MySQL運行在一個共享伺服器,或者你想知道InnoDB緩衝池大小是否正確設置,詳細請看這裡。
3.INNODB_LOG_FILE_SIZE
InnoDB重做日誌文件的設置在MySQL社區也叫做事務日誌。直到MySQL 5.6.8事務日誌默認值innodb_log_file_size=5M是唯一最大的InnoDB性能殺手。從MySQL 5.6.8開始,默認值提升到48M,但對於許多稍繁忙的系統,還遠遠要低。
根據經驗,你應該設置的日誌大小能在你伺服器繁忙時能存儲1-2小時的寫入量。如果不想這麼麻煩,那麼設置1-2G的大小會讓你的性能有一個不錯的表現。這個變數也相當重要,更詳細的介紹請看這裡。
當然,如果你有大量的大事務更改,那麼,更改比默認innodb日誌緩衝大小更大的值會對你的性能有一定的提高,但是你使用的是autocommit,或者你的事務更改小於幾k,那還是保持默認的值吧。
4.INNODB_FLUSH_LOG_AT_TRX_COMMIT
默認下,innodb_flush_log_at_trx_commit設置為1表示InnoDB在每次事務提交後立即刷新同步數據到硬碟。如果你使用autocommit,那麼你的每一個INSERT, UPDATE或DELETE語句都是一個事務提交。
同步是一個昂貴的操作(特別是當你沒有寫回緩存時),因為它涉及對硬碟的實際同步物理寫入。所以如果可能,並不建議使用默認值。
兩個可選的值是0和2:
* 0表示刷新到硬碟,但不同步(提交事務時沒有實際的IO操作)
* 2表示不刷新和不同步(也沒有實際的IO操作)
所以你如果設置它為0或2,則同步操作每秒執行一次。所以明顯的缺點是你可能會丟失上一秒的提交數據。具體來說,你的事務已經提交了,但伺服器馬上斷電了,那麼你的提交相當於沒有發生過。
顯示的,對於金融機構,如銀行,這是無法忍受的。不過對於大多數網站,可以設置為innodb_flush_log_at_trx_commit=0|2,即使伺服器最終崩潰也沒有什麼大問題。畢竟,僅僅在幾年前有許多網站還是用MyISAM,當崩潰時會丟失30s的數據(更不要提那令人抓狂的慢修復進程)。
那麼,0和2之間的實際區別是什麼?性能明顯的差異是可以忽略不計,因為刷新到操作系統緩存的操作是非常快的。所以很明顯應該設置為0,萬一MySQL崩潰(不是整個機器),你不會丟失任何數據,因為數據已經在OS緩存,最終還是會同步到硬碟的。
5.SYNC_BINLOG
已經有大量的文檔寫到sync_binlog,以及它和innodb_flush_log_at_trx_commit的關係,下面我們來簡單的介紹下:
a) 如果你的伺服器沒有設置從伺服器,而且你不做備份,那麼設置sync_binlog=0將對性能有好處。
b) 如果你有從伺服器並且做備份,但你不介意當主伺服器崩潰時在二進位日誌丟失一些事件,那麼為了更好的性能還是設置為sync_binlog=0.
c) 如果你有從伺服器並且備份,你非常在意從伺服器的一致性,以及能及時恢復到一個時間點(通過使用最新的一致性備份和二進位日誌將資料庫恢復到特定時間點的能力),那麼你應該設置innodb_flush_log_at_trx_commit=1,並且需要認真考慮使用sync_binlog=1。
問題是sync_binlog=1代價比較高 – 現在每個事務也要同步一次到硬碟。你可能會想為什麼不把兩次同步合併成一次,想法正確 – 新版本的MySQL(5.6和5.7,MariaDB和Percona Server)已經能合併提交,那麼在這種情況下sync_binlog=1的操作也不是這麼昂貴了,但在舊的mysql版本中仍然會對性能有很大影響。
6.INNODB_FLUSH_METHOD
將innodb_flush_method設置為O_DIRECT以避免雙重緩衝.唯一一種情況你不應該使用O_DIRECT是當你操作系統不支持時。但如果你運行的是Linux,使用O_DIRECT來激活直接IO。
不用直接IO,雙重緩衝將會發生,因為所有的資料庫更改首先會寫入到OS緩存然後才同步到硬碟 – 所以InnoDB緩衝池和OS緩存會同時持有一份相同的數據。特別是如果你的緩衝池限制為總內存的50%,那意味著在寫密集的環境中你可能會浪費高達50%的內存。如果沒有限制為50%,伺服器可能由於OS緩存的高壓力會使用到swap。
簡單地說,設置為innodb_flush_method=O_DIRECT。
7.INNODB_BUFFER_POOL_INSTANCES
MySQL 5.5引入了緩衝實例作為減小內部鎖爭用來提高MySQL吞吐量的手段。
在5.5版本這個對提升吞吐量幫助很小,然後在MySQL 5.6版本這個提升就非常大了,所以在MySQL5.5中你可能會保守地設置innodb_buffer_pool_instances=4,在MySQL 5.6和5.7中你可以設置為8-16個緩衝池實例。
你設置後觀察會覺得性能提高不大,但在大多數高負載情況下,它應該會有不錯的表現。
對了,不要指望這個設置能減少你單個查詢的響應時間。這個是在高並發負載的伺服器上才看得出區別。比如多個線程同時做許多事情。
8.INNODB_THREAD_CONCURRENCY
InnoDB有一種方法來控制並行執行的線程數 – 我們稱為並發控制機制。大部分是由innodb_thread_concurrency值來控制的。如果設置為0,並發控制就關閉了,因此InnoDB會立即處理所有進來的請求(儘可能多的)。
在你有32CPU核心且只有4個請求時會沒什麼問題。不過想像下你只有4CPU核心和32個請求時 – 如果你讓32個請求同時處理,你這個自找麻煩。因為這些32個請求只有4 CPU核心,顯然地會比平常慢至少8倍(實際上是大於8倍),而然這些請求每個都有自己的外部和內部鎖,這有很大可能堆積請求。
下面介紹如何更改這個變數,在mysql命令行提示符執行:
對於大多數工作負載和伺服器,設置為8是一個好開端,然後你可以根據伺服器達到了這個限制而資源使用率利用不足時逐漸增加。可以通過show engine innodb status\G來查看目前查詢處理情況,查找類似如下行:
9.SKIP_NAME_RESOLVE
這一項不得不提及,因為仍然有很多人沒有添加這一項。你應該添加skip_name_resolve來避免連接時DNS解析。
大多數情況下你更改這個會沒有什麼感覺,因為大多數情況下DNS伺服器解析會非常快。不過當DNS伺服器失敗時,它會出現在你伺服器上出現「unauthenticated connections」 ,而就是為什麼所有的請求都突然開始慢下來了。
所以不要等到這種事情發生才更改。現在添加這個變數並且避免基於主機名的授權。
10.INNODB_IO_CAPACITY, INNODB_IO_CAPACITY_MAX
* innodb_io_capacity:用來當刷新臟數據時,控制MySQL每秒執行的寫IO量。
* innodb_io_capacity_max: 在壓力下,控制當刷新臟數據時MySQL每秒執行的寫IO量
首先,這與讀取無關 – SELECT查詢執行的操作。對於讀操作,MySQL會盡最大可能處理並返回結果。至於寫操作,MySQL在後台會循環刷新,在每一個循環會檢查有多少數據需要刷新,並且不會用超過innodb_io_capacity指定的數來做刷新操作。這也包括更改緩衝區合併(在它們刷新到磁碟之前,更改緩衝區是輔助臟頁存儲的關鍵)。
第二,我需要解釋一下什麼叫「在壓力下」,MySQL中稱為」緊急情況」,是當MySQL在後台刷新時,它需要刷新一些數據為了讓新的寫操作進來。然後,MySQL會用到innodb_io_capacity_max。
那麼,應該設置innodb_io_capacity和innodb_io_capacity_max為什麼呢?
最好的方法是測量你的存儲設置的隨機寫吞吐量,然後給innodb_io_capacity_max設置為你的設備能達到的最大IOPS。innodb_io_capacity就設置為它的50-75%,特別是你的系統主要是寫操作時。
通常你可以預測你的系統的IOPS是多少。例如由8 15k硬碟組成的RAID10能做大約每秒1000隨機寫操作,所以你可以設置innodb_io_capacity=600和innodb_io_capacity_max=1000。許多廉價企業SSD可以做4,000-10,000 IOPS等。
這個值設置得不完美問題不大。但是,要注意默認的200和400會限制你的寫吞吐量,因此你可能偶爾會捕捉到刷新進程。如果出現這種情況,可能是已經達到你硬碟的寫IO吞吐量,或者這個值設置得太小限制了吞吐量。
11.INNODB_STATS_ON_METADATA
如果你跑的是MySQL 5.6或5.7,你不需要更改innodb_stats_on_metadata的默認值,因為它已經設置正確了。
不過在MySQL 5.5或5.1,強烈建議關閉這個變數 – 如果是開啟,像命令show table status會立即查詢INFORMATION_SCHEMA而不是等幾秒再執行,這會使用到額外的IO操作。
從5.1.32版本開始,這個是動態變數,意味著你不需要重啟MySQL伺服器來關閉它。
12.INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN INNODB_BUFFER_POOL_LOAD_AT_STARTUP
innodb_buffer_pool_dump_at_shutdown和innodb_buffer_pool_load_at_startup這兩個變數與性能無關,不過如果你偶爾重啟mysql伺服器(如生效配置),那麼就有關。當兩個都激活時,MySQL緩衝池的內容(更具體地說,是緩存頁)在停止MySQL時存儲到一個文件。當你下次啟動MySQL時,它會在後台啟動一個線程來載入緩衝池的內容以提高預熱速度到3-5倍。
兩件事:
第一,它實際上沒有在關閉時複製緩衝池內容到文件,僅僅是複製表空間ID和頁面ID – 足夠的信息來定位硬碟上的頁面了。然後它就能以大量的順序讀非常快速的載入那些頁面,而不是需要成千上萬的小隨機讀。
第二,啟動時是在後台載入內容,因為MySQL不需要等到緩衝池內容載入完成再開始接受請求(所以看起來不會有什麼影響)。
從MySQL 5.7.7開始,默認只有25%的緩衝池頁面在mysql關閉時存儲到文件,但是你可以控制這個值 – 使用innodb_buffer_pool_dump_pct,建議75-100。
這個特性從MySQL 5.6才開始支持。
13.INNODB_ADAPTIVE_HASH_INDEX_PARTS
如果你運行著一個大量SELECT查詢的MySQL伺服器(並且已經儘可能優化),那麼自適應哈希索引將下你的下一個瓶頸。自適應哈希索引是InnoDB內部維護的動態索引,可以提高最常用的查詢模式的性能。這個特性可以重啟伺服器關閉,不過默認下在mysql的所有版本開啟。
這個技術非常複雜,在大多數情況下它會對大多數類型的查詢直到加速的作用。不過,當你有太多的查詢往資料庫,在某一個點上它會花過多的時間等待AHI鎖和閂鎖。
如果你的是MySQL 5.7,沒有這個問題 – innodb_adaptive_hash_index_parts默認設置為8,所以自適應哈希索引被切割為8個分區,因為不存在全局互斥。
不過在mysql 5.7前的版本,沒有AHI分區數量的控制。換句話說,有一個全局互斥鎖來保護AHI,可能導致你的select查詢經常撞牆。
所以如果你運行的是5.1或5.6,並且有大量的select查詢,最簡單的方案就是切換成同一版本的Percona Server來激活AHI分區。
14.QUERY_CACHE_TYPE
如果人認為查詢緩存效果很好,肯定應該使用它。好吧,有時候是有用的。不過這個只在你在低負載時有用,特別是在低負載下大多數是讀取,小量寫或者沒有。
如果是那樣的情況,設置query_cache_type=ON和query_cache_size=256M就好了。不過記住不能把256M設置更高的值了,否則會由於查詢緩存失效時,導致引起嚴重的伺服器停頓。
如果你的MySQL伺服器高負載動作,建議設置query_cache_size=0和query_cache_type=OFF,並重啟伺服器生效。那樣Mysql就會停止在所有的查詢使用查詢緩存互斥鎖。
15.TABLE_OPEN_CACHE_INSTANCES
從MySQL 5.6.6開始,表緩存能分割到多個分區。
表緩存用來存放目前已打開表的列表,當每一個表打開或關閉互斥體就被鎖定 – 即使這是一個隱式臨時表。使用多個分區絕對減少了潛在的爭用。
從MySQL 5.7.8開始,table_open_cache_instances=16是默認的配置。
歡迎做Java的工程師朋友們私信我資料免費獲取免費的Java架構學習資料(裡面有高可用、高並發、高性能及分散式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)
其中覆蓋了互聯網的方方面面,期間碰到各種產品各種場景下的各種問題,很值得大家借鑒和學習,擴展自己的技術廣度和知識面。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/257233.html