mysql資料庫存儲
1,每個資料庫對應一個文件夾,文件夾名和庫名相同;
2,(單獨的表空間中) 每張表對應幾個文件,文件名和表名相同,innodb引擎中對應兩個文件,後綴名為:frm、ibd;
frm文件:存儲的是表結構信息。
ibd文件:存儲的是表裡的數據、索引等。
⑵ mysql資料庫的存放位置在哪裡
資料庫文件默認存放位置:C:ProgramFilesMySQLMySQLServer5.0data。
資料庫的配置文件在C:ProgramFilesMySQLMySQLServer5.0my.ini。
在data文件夾里找到不test的資料庫文件夾和自己創建的文件夾是因為test資料庫是空的資料庫,用於測試使用,自己的文件夾需要去mysql資料庫尋找。
mysql資料庫文件默認存放位置:C:ProgramFilesMySQLMySQLServer5.0mysql。
MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。
下面詳細介紹幾個找不同數拆滲據庫用到的命令:
1、選擇你所創建的資料庫
mysql>USEMYSQLDATA;(按回車鍵出現Databasechanged時說明操作成功!)
2、:使用SHOW語句找出在伺服器上當前存在什麼資料庫
mysql>SHOWDATABASES;
3、查看現在的資料庫中存在什麼表
mysql>SHOWTABLES;
4、顯示表的結構。
mysql>DESCRIBEMYTABLE;
(2)mysql資料庫存儲擴展閱讀:
mysql資料庫伺服器有三個資料庫:information_schema資料庫,mysql資料庫,test資料庫。
1、nformation_schema資料庫:這個資料庫保存了mysql伺服器所有資料庫的信息。比如資料庫雀慎的名、資料庫的表、訪問許可權、資料庫表的數據類型,資料庫索引的信息等等。就是關於這個資料庫的點點滴滴信息都存儲在這個資料庫中。
nformation_schema資料庫是MySQL自帶的,它提供了訪問資料庫元數據的方式。什麼是元數據呢?元數據是關於數據的數據,如資料庫名或表名,列的數據類型,或訪問許可權等。有些時候用於表述該信息的其他術語包括「數據詞典」和「系統目錄」。
在MySQL中,把information_schema看作是一個資料庫,確切說是信息資料庫。其中保存著關於MySQL伺服器所維護的所有其他資料庫的信息。
如資料庫名,資料庫的表,表欄的數據類型與訪問許可權等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,將無法看到與之相關的任何文件。
2、mysql資料庫:這個資料庫中是mysql資料庫中的所有的信息表。
這個是mysql的核心資料庫,類似於sqlserver中的master表,主要負責存儲資料庫的用戶、許可權設置、關鍵字等mysql自己需要使用的控制和管理信息。不可以刪除,如果對mysql不是很了解,也不要輕易修改這個資料庫裡面的表信息。
3、test資料庫:空的資料庫,用於測試用旅歲脊。
這個是安裝時候創建的一個測試資料庫,和它的名字一樣,是一個完全的空資料庫,沒有任何錶,可以刪除。
⑶ mysql的數據存儲在哪
1、MySQL如果使用MyISAM存儲引擎,資料庫文件類型就包括.frm、.MYD、.MYI,默認存放位置是C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data
2、MySQL如果使用InnoDB存儲引擎,MySQL資料庫文件類型就包括.frm、ibdata1、.ibd,存放位置有兩個,
.frm文件默認存放位置是C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data, ibdata1、.ibd文件默認存放位置是MySQL安裝目錄下的data文件夾
⑷ Windows下如何更改MySQL資料庫的存儲位置
1、在mysql安裝完成後,要修改資料庫存儲的位置,比如從安裝目錄下的E:\Program Files (x86)\MySQL\data文件夾轉移到D:\mydata文件夾。
2、在D:\下新建mydata文件夾
3、cmd進入dos窗口,輸入net stop mysql停止MySQL服務,將C:\ProgramData\MySQL\MySQL Server 5.5\data(其中ProgramData為隱藏文件夾)下的文件夾和文件一起拷貝到D:\mydata文件夾下
4、在安裝目錄下找到my.ini文件,找到:
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
將datadir的值更改為datadir="D:/mydata/"
5、保存後,cmd進入dos窗口,輸入net start mysql重新啟動mySQL服務即可。
⑸ k8s中的Mysql資料庫持久化存儲
一、配置:
環境:
CentOS7
VMware
筆者配置了四台虛擬機:
K8S-Master節點: 3GB內存 2核CPU 20GB硬碟空間
K8S-node1節點: 2GB內存 2核CPU 30GB硬碟空間
K8S-node2節點: 2GB內存 2核CPU 30GB硬碟空間
鏡像倉庫節點: 2GB內存 2核CPU 50GB硬碟空間
二、節點規劃:
使用三台虛擬機搭建K8S集群,使用一台虛擬機搭建鏡像倉庫。
每台虛擬機配置兩塊網卡,其中一塊為「NAT模式」,用於拉取鏡像等功能。
另外一塊網卡為「僅主機模式」,用於集群節點間的通信。歸劃如下:
K8s-master節點:
僅主機模式:10.10.10.200
NAT模式: 192.168.200.130
K8S-node1節點:
僅主機模式:10.10.10.201
NAT模式: 192.168.200.131
K8S-node2節點:
僅主機模式:10.10.10.202
NAT模式: 192.168.200.132
鏡像倉庫節點:
僅主機模式:10.10.10.101
NAT模式: 192.168.200.150
三、版本信息
Linux內核版本:
Linux version 3.10.0-862.el7.x86_64 ([email protected])
(gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) )
#1 SMP Fri Apr 20 16:44:24 UTC 2018
K8s集群版本為1.15.0版本:
四、基於StatefulSet與PV/PVC的MySql持久化存儲實驗
1. 在每個節點安裝nfs服務
在「鏡像倉庫」節點,執行以下命令:
yum install -y nfs-common nfs-utils rpcbind
在k8s集群,執行以下命令:
yum install -y nfs-utils rpcbind
2. 在「鏡像倉庫」節點下,配置nfs伺服器
mkdir /nfs_mysql
Chmod 777 /nfs_mysql/
(在測試環境中,為了不考慮用戶屬性,暫時賦予777許可權,但在生產環境不推薦這樣做)
Chown nfsnobody /nfs_mysql/
echo 「/nfs_mysql *(rw,no_root_squash,no_all_squash,sync)」 >> /etc/exports
cat /etc/exports
/nfs_mysql *(rw,no_root_squash,no_all_squash,sync)
systemctl start rpcbind
systemctl start nfs
3. 測試nfs服務是否可用
mkdir /test
showmount -e 10.10.10.101
可見/nfs_mysql *已暴露於共享目錄,接下來測試掛載是否可用:
在master節點下執行:
mount -t nfs 10.10.10.101:/nfs_mysql /test/
echo "hello-world">>/test/1.txt
在鏡像倉庫節點下查看1.txt是否存在,若存在則掛載成功:
可見nfs服務可以正常使用,接下來刪除test目錄和1.txt
在鏡像倉庫下:
[root@hub nfs_mysql]# rm -f 1.txt
在Master節點下:
[root@k8s-master ~]# umount /test/
[root@k8s-master ~]# rm -rf /test/
同理,依照以上步驟同時創建:(提供多個mysql副本進行掛載)
nfs_mysql1
nfs_mysql2
完成後需要重啟nfs服務
systemctl restart rpcbind
systemctl restart nfs
最終效果:
4. 將nfs封裝成pv
創建mysql_test文件夾,將yaml文件統一保存在此目錄下
mkdir mysql_test
cd mysql_test
vim mysql-pv.yml
mysql-pv.yml配置如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
nfs:
path: /nfs_mysql
server: 10.10.10.101
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv1
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
nfs:
path: /nfs_mysql1
server: 10.10.10.101
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv2
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs
nfs:
path: /nfs_mysql2
server: 10.10.10.101
注意:
在k8s集群15版本中recycle回收策略已被刪除,只能用retain策略或者Delete策略。這里我們使用 persistentVolumeReclaimPolicy: Retain
執行命令:
kubectl create -f mysql-pv.yml
kubectl get pv
如圖所示,即為Pv創建成功。
5. 部署MySQL,在mysql_test目錄下編寫mysql.yml,配置文件如下
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
app: mysql
spec:
ports:
- port: 3306
name: mysql
clusterIP: None
selector:
app: mysql
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
serviceName: "mysql"
replicas: 3
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.6
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumeClaimTemplates:
- metadata:
name: mysql-persistent-storage
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "nfs"
resources:
requests:
storage: 1Gi
執行以下命令,部署mysql服務:
kubectl create -f mysql.yml
如圖可知,mysql按StatefulSet依次創建了mysql-0 mysql-1 mysql-2
查看各個Pod部在哪個節點:
6. 通過創建臨時容器,使用MySQL客戶端發送測試請求給MySQL master節點
注意:
主機名為mysql-0.mysql;跨命名空間的話,主機名請使用mysql-0.mysql. [NAMESPACE_NAME].如果沒有指定命名空間,默認為default,即 mysql-0.mysql. default。
這里筆者打算關閉node2節點來模擬node2宕機,來測試是否實現數據的持久化存儲,
所以我們向node2上的mysql1寫入數據。
執行以下命令,訪問mysql1:
kubectl run mysql-client --image=mysql:5.6 -it --rm --restart=Never -- mysql -h mysql-1.mysql.default -p password
創建資料庫demo,並向messages表中寫入hello-world
CREATE DATABASE demo;
CREATE TABLE demo.messages (message VARCHAR(250));
INSERT INTO demo.messages VALUES ('hello-world');
如圖所示
接下來我們來關閉k8s-node2虛擬機,模擬宕機
查看nodes的運行狀態,可知node2的狀態已轉變為NotReady
一段時間後,k8s將Pod MySql -1遷移到節點k8s-node1
由於時間過長,筆者把三個Pod都刪除重啟後,驗證數據:
MySQL服務恢復,數據完好無損!
⑹ MySQL 資料庫存儲類型
數值類型包含: int tinyint bigint float decimal
int 大整型(占 4 個位元組的存儲空間)
tinyint 微小整型(占 1 個位元組的存儲空間)
bigint 極大整型(占 8 個位元組的存儲空間)
float 佔4個位元組,最多顯示7個有效位。常用於成績。
float(5,2)取值范圍:
decimal 最多可以顯示 28 個有效位
存儲空間計算:整數部分和小數部分分開存儲,將 9 的倍數包裝成 4 個位元組,余數佔用的位元組數如下:
decimal 的整數位和小數位模9的余數和位元組對照表
例如: decimal(19,9)
整數部分:
小數部分:
char 定長:當列中存儲的字元串達不到最大長度時,使用空格進行補足。
varchar 變長
char 浪費存儲空間,但性能高。 varchar 節約存儲空間,但存儲性能低。
text / longtext(4G)
數值類型寬度為顯示寬度,和佔用存儲空間大小無關;字元類型的寬度,超過則無法存儲:
對於枚舉類型的欄位,欄位值只能在列舉的范圍內選擇。
日期時間類型: date time datetime timestamp
date 日期:
time 時間:
datetime 日期時間:
timestamp 日期時間:
日期時間函數: NOW() CURDATE() CURTIME()
NOW() 返回伺服器當前的時間:
CURDATE() 返回當前日期:
CURTIME() 返回當前時間:
插入日期時間:
語法格式:
示例:
查詢1天以內的記錄:
查詢2年前至今年的記錄:
⑺ Mysql 資料庫文件存儲在哪個目錄
Mysql默認存放位置:C:Program FilesMySQLMySQL Server 5.0data。
另外,資料庫的配置文件位置為C:Program FilesMySQLMySQL Server 5.0my.ini。MySQL是一個關系型資料庫管理系正局統,由瑞典MySQL AB 公司開發,目歷寬前屬於 Oracle 旗下產品。
MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體。
(7)mysql資料庫存儲擴展閱讀:
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
參考資肢清亮料:mysql網路
⑻ mysql 資料庫varchar可以存儲多少個漢字和多少個數字
4.0版本以下,varchar(50),指的是50位元組,如果存放UTF8漢字時,只能存16個(每個漢字3位元組) 5.0版本以上,varchar(50),指的是50字元,無論存放的是數字、耐判字母還是UTF8漢字(每個漢字3位元組),都可以存放50個 其實最好的辦法是在自己資料庫中建個表試試可以放多少漢字,現在mysql都5.0已上了,varchar(50)是可以存50個漢字的
具體還是要看版本的:
4.0版本以下,varchar(100),指的是100位元組,如果存放UTF8漢字時,只能存33個(每個漢字3位元組)
5.0版本以上,varchar(100),指的是100字元,無論存放的是數字、字母還是UTF8漢衫辯字(每個漢字3位元組),都可以存放100個。
⑼ mysql的最大數據存儲量是多少
mysql的最大數據存儲量沒有最大限制。
最多也就是單欄位的長度有限制,那跟欄位的數據類型有關,而對於數據表的大小一般不要超過2G,超過了效率會比較慢,建議分開多表存。
上MySQL 能承受的數據量的多少主要和數據表的結構有關,並不是一個固定的數值。表的結構簡單,則能承受的數據量相對比結構復雜時大些。
據D.V.B 團隊以及Cmshelp 團隊做CMS 系統評測時的結果來看,MySQL單表大約在2千萬條記錄(4G)下能夠良好運行,經過資料庫的優化後5千萬條記錄(10G)下運行良好。
(9)mysql資料庫存儲擴展閱讀
由於MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。
MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。