MySQL數據庫編譯及入門

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)
相關文章
相關標籤/搜索