MySQL數據庫
數據庫簡單的分爲兩種:
1.關係型數據庫-->MySQL和Oracle postgresql
2.非關係型數據庫--->Memcached 和 Redis
3.搜索引擎數據庫: ElasticSearch
4.時間序列數據庫: LnfluxDB
5.列數據庫:hbase
6.圖形數據庫: mongodb
每一個表都會自定義主鍵。主鍵會
MySQL的配置文件 /etc/
什麼叫作關係型數據庫?SQL數據庫
數據和數據之間是有關係的。經過關係可以將一些列數據都提取出來。
所謂關係類型:就是由於數據庫的數據之間存在關聯關係,所以才成爲關係型數據庫。關係型數據庫能夠經過一條數據關聯出一堆數據,如此一來,方便數據的檢索和查詢,提升開發人員的查詢效率,可是會拖累數據庫美因茨關係型數據可不支持過高併發。
射門麼是非關係型數據庫?NoSQL數據庫
關係型數據庫MySQL和Oracle有什麼區別?
其實,這兩類數據庫在使用方式上,答題是沒有太多區別的。都是局域SQL查詢方式的數據庫。可是Oracle是閉源的,也就是收錢的,收了錢天然就好辦事,除了問題,有人管。所以,運維並不須要花太多精力在Oracle上。要學,去企業學。
MySQL呢? 是開源的,免費用的,免費的東西天然是須要咱們運維來維護的,可是永昌來講,真正的數據庫維護人員的職位叫作DBA=database administrator,它並非普遍意義上的運維,只是數據庫專業運維,對於普遍意義上的韻味維護人員來講,咱們在2萬薪資一下只須要簡單瞭解MySQL.
市面上還有一種數據庫,關係型的,叫作MariaDB,它和MySQL有什麼關係呢?
MySQL數據庫最先是開源的,固然如今也是開源的。可是,MySQL已經被Oracle公司==>SUN,被它收購了
那麼,MySQL運維社區的人,爲了防止SUN公司對MySQL進行閉源操做,他們自主在MySQL最後一個開源版本的基礎上,開發出來一個分支數據庫,叫作MariaDB其實,它和MtSQL是幾乎同樣的。所以,之後遇到這個數據庫沒關係張,
B/S架構模式與C/S架構模式的區別?
B/S ==> Web/Server
用戶經過Web瀏覽器打開輸入域名就能訪問服務器Server的方式叫作B/S用戶不須要安裝任何東西
C/S==> Client/Server
所謂客戶端Client在用戶的電腦裏是須要下載並安裝的。
編譯安裝 MySQL
安裝 ncurses-devel 與 cmake 包
yum -y install ncurses-devel 安裝支持包
tar xf cmake-2.8.6.tar.gz -C /usr/src/ 解包
cd /usr/src/cmake-2.8.6/ 進入目錄
yum -y install gcc gcc-c++ make autoconf 安裝cmake
./configure && gmake && gmake install 編譯
編譯MySQL
tar xf mysql-5.5.22.tar.gz -C /usr/src/ 解包
cd usr/src/mysql-5.5.22/ 進目錄
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
---------------->>><<<----------------
MySQL目錄
my.cnf 配置文件相關介紹,在 mysql 解壓路徑 support-files/下提供的模板
路徑: /usr/local/mysql/support-lifes/my-*
my-huge.conf 巨大數據量
my-innodb-heavy-4G.cnf innodb 引擎
my-large.cnf 大數據量
my-medium.cnf 測試使用
my-small.cnf 小數據量
建立修改 my.cnf配置文件模板: /bin/cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
複製啓動腳本:/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
加入開機啓動: chkconfig mysql --add
chkconfig mysql --list
添加到環境變量裏:echo "export PATH=$PATH:/usr/local/mysql/bin* " >> /etc/profile
執行 mysql_install_db 腳本初始化數據庫
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
啓動 MySQL 服務,並查看運行狀態
/etc/init.d/mysql start
MySQL帳號由兩部分組成
帳戶名@登陸IP
mysql -u 指定登陸帳號
-p 指定密碼(不寫就是空密碼登陸)
-h 指定主機(指定IP)
-p 指定端口
給MySQL設置密碼
mysqladmin -uroot password '000000'
show 查看 databases; 看小庫
show grants for ''@''; 查單獨用戶
show grants 默認看當前用戶
use mysql 將對象設定成 mysql這個小庫
show tables; 查看該庫的表
create database yunjisuan; 建立一個叫yunjisuan的庫
庫的本質就是子目錄
drop database yunjisuan; 刪除一個叫作yunjisuan的庫
create table users (user_name char(20) not null,user_passwd char(30) default' ',primary key (user_name)); =====> 建立一個表
create ===> 建立
drop ===> 刪除
use ===>切換庫
show ===>查看
以上爲 管理命令
select ===> 讀
select 字段名 from 空間名.表名
\G 把橫向數據變成豎着的
四種對錶數據進行操做的SQL語句
增:insert into 表名[字段名] values 具體數值
例: insert into uses values ('xiaohong','000000');
刪:delete 表名 where 條件
例:delete from uses where user_name='baibai'
改:update 表名 set 字段=‘數值’
例:update uses set user_passwd='666666' where user_name='baibai'
查:select 字段名 from 表名
例:select * from uses;
小庫其實就是data目錄下的子目錄,開發小庫叫作空間,小庫的名字叫作空間名,空間名,表名
flush privileges; ===> 刷新,當即生效
desc yunjisuan,users; 查看錶結構
insert into 空間名.表名(字段名1,字段2)values('值1','值2')
insert into yunjisuan.users(user_name,user_passwd) values ('小紅',‘66666’);
update 空間名.表名 set 字段名='值' ====> 更新
update yunjisuan.users set user_passwd='888' wbere user name='田小綠' ;
delete from yunjisuan.users where user_name='田小綠' 刪除
update mysql.user set password=password('123123') where user='root'; 修改 MySQL登陸 root帳戶 密碼爲 123123
用戶權限 grand
mysql的帳號分爲兩部分
一個是用戶名,一個是登陸IP '用戶名'@'登陸IP'
show grants 看當前用戶的權限
show grants for 'yunjisuan'@'xxx.xxx.xxx.xxx' 查其餘用戶的權限
建立帳號:grant all no *.* to 'root@192.168.127.135' IDENTIFIED BY '123123'
all===> 指的是全部查看的類型 好比 select、delete、update、insert 等等
*.* ===>第一個*指的全部的庫第二個*指的是全部的表
to===> 將to 前面全部的庫全部的表的all權限附給to後面這個帳號
撤銷用戶權限
revoke select on mysql.user from ' '@' ';
MySQL 通配符
_ : 任意單個字符
%:任意長度的任意字符
例: grant all on *.* to 'yunjisuan'@'%' identified by '123123'; 表明任何IP 均可登錄
數據索引的分類
1.普通索引:這是最基本的索引類型,並且沒有惟一性之類的限制
2.惟一性索引:與普通索引基本相同,區別在於:因所列的全部值都只能出現一次,即必須爲一,但可爲空。
3.主鍵:是一種特殊的索引,必須指定爲「PRIMARY KEY」,具備惟一性的同時不能爲空
4.全文索引:MySQL從 3.23.23版本開始支持全文索引和全文檢索。在MySQL中,全文索引的類型爲FULLTEXT,全文索引能夠在VARCHAR或者TEXT類型的列上建立。貼吧的文本內容,和一些小型的網站網頁內容,存放在數據庫中即爲全文索引模式。
5.單列索引與多列索引:索引能夠是但裂傷建立索引,也能夠是多列上建立的索引。
事物的ACID特色
事物具備四個屬性:ACID
原子性(Atomicity)
一致性(Consistency)
隔離性(lsolation)
持久性(Durability)