天天看點

DBAmysql資料庫_萬金油_新浪部落格

理論多,指令多 問的都是理論知識 1.什麼是資料庫 存儲資料的倉庫, 2.主流的三款資料庫 mysql redis mongodb 3.資料庫的模型 4.常見的資料服務軟體和廠商 5.mysql 的簡介和發展過程

一。mysql資料庫 搭建資料庫伺服器 mysql的資料庫類型 部署一台資料庫,提供資料庫存儲的服務? 生産環境下是用硬體主機和雲主機 伺服器的主流的作業系統 unix linux Windows 

安裝軟體包     

軟體包來源, 官網下載下傳  最新的穩定版,主版本和次版本 偶數和奇數   修改次數  作業系統自帶的軟體 軟體包的封包類型(RPM 源碼) 源碼是可以自定義配置和安裝 ,安裝解除安裝友善 rpm -ivh  rpm -e ,但是鑰解決依賴關系 RPM是封裝好的,不能定義

開源軟體和商業軟體   使用的軟體版本 開源不等于免費,開源軟體可以進行二次開發。一般公司都是使用開源軟體 提供資料庫服務的軟體,apache tomcat  nginx  mysql  SQL.server DB2  Oracle 是關系型資料庫RDBMS                                            按照一定的規則進行存儲資料                                  Redis   Mongodb    Memcached                                         是非關系型資料庫 NOSQL                                                 不需要按照一定的規則進行存儲資料 商業軟體是要付費

mysql 的特點————用c語言開放 開源并能夠跨平台  —— unix linux Windows  支援主流的程式設計語言————unix linux  windows 可移植好——系統隻有c的運作環境就可以運作  LNMP  LAMP  Mysql  Mongodb 資料庫的服務通常都是跟網站的服務一起使用   資料庫都是存儲什麼樣的資料?? 現在主流網站  購物網站 遊戲網站   視訊網站   論壇網站   金融網站

一。安裝mysql

mysql 和mraidb 是同一款資料庫軟體 請看mysql的起源和發展

如果安裝了mariadb 就不能安裝mysql 就會出現沖突  都是提供mysql 服務的 ,配置檔案和存儲資料目錄都是一樣 如果mariadb-server 應該先把服務給先停了服務,才可以進行解除安裝操作 [[email protected] ~]# rpm -qa  | grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 [[email protected] ~]# yum list | grep -i mariadb mariadb-libs.x86_64                     1:5.5.56-2.el7             @anaconda/7.4 mariadb.x86_64                          1:5.5.56-2.el7             dev           mariadb-bench.x86_64                    1:5.5.56-2.el7             dev           mariadb-devel.i686                      1:5.5.56-2.el7             dev           mariadb-devel.x86_64                    1:5.5.56-2.el7             dev           mariadb-libs.i686                       1:5.5.56-2.el7             dev           mariadb-server.x86_64                   1:5.5.56-2.el7             dev           mariadb-test.x86_64                     1:5.5.56-2.el7             dev     

tar -xf 和   tar -xvf 的差別 就是後者可以顯示解包的過程

[[email protected] ~]# rpm -e --nodeps Cariadb-server ————強制解除安裝軟體以及依賴包 安裝裝不上的原因 配置檔案和參數  資料存儲目錄?? [[email protected] ~]# rm -rf /etc/my.cnf [[email protected] ~]# rm -rf /var/lib/mysql [[email protected] ~]# rpm -e --nodeps mariadb-server [[email protected] ~]# rpm -e --nodeps mariadb-libs 警告:檔案 /etc/my.cnf: 移除失敗: 沒有那個檔案或目錄 [[email protected] ~]# rpm -qa | grep -i mariadb

安裝mysql 軟體包的步驟 [[email protected] ~]# rpm -Uvh mysql-community-*.rpm ————U是更新安裝 警告:mysql-community-client-5.7.17-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY 錯誤:依賴檢測失敗: perl(JSON) 被 mysql-community-test-5.7.17-1.el7.x86_64 需要————提示依賴關系 [[email protected] ~]# rpm -q perl-JSON 未安裝軟體包 perl-JSON  [[email protected] ~]# yum -y install  perl-JSON

[[email protected] ~]# rpm -Uvh mysql-community-*.rpm  ————U是更新安裝。

警告:mysql-community-client-5.7.17-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY 準備中...                          ################################# [100%] 正在更新/安裝...    1:mysql-community-common-5.7.17-1.e################################# [  9%]    2:mysql-community-libs-5.7.17-1.el7################################# [ 18%]    3:mysql-community-client-5.7.17-1.e################################# [ 27%]    4:mysql-community-server-5.7.17-1.e################################# [ 36%]    5:mysql-community-devel-5.7.17-1.el################################# [ 45%]    6:mysql-community-embedded-5.7.17-1################################# [ 55%]    7:mysql-community-embedded-devel-5.################################# [ 64%]    8:mysql-community-test-5.7.17-1.el7################################# [ 73%]    9:mysql-community-libs-compat-5.7.1################################# [ 82%]   10:mysql-community-embedded-compat-5################################# [ 91%]   11:mysql-community-minimal-debuginfo################################# [100%] 這個百分比是前面的已經完成了一部分 更新安裝的好處?? 1.可以增加新功能 2.解決舊版本的漏洞的問題和BUG 3.增加穩定性和對系統的支援 4.安裝的體積更大,需要更多的磁盤   5.運作時需要暫用更多的CPU和記憶體 [[email protected] ~]# rpm -qa | grep mysql  ————檢視已經安裝的軟體清單

mysql-community-client-5.7.17-1.el7.x86_64

mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64 mysql-community-test-5.7.17-1.el7.x86_64 mysql-community-common-5.7.17-1.el7.x86_64 mysql-community-devel-5.7.17-1.el7.x86_64 mysql-community-libs-compat-5.7.17-1.el7.x86_64 mysql-community-libs-5.7.17-1.el7.x86_64 mysql-community-embedded-5.7.17-1.el7.x86_64 mysql-community-embedded-compat-5.7.17-1.el7.x86_64 mysql-community-embedded-devel-5.7.17-1.el7.x86_64

mysql-community-server-5.7.17-1.el7.x86_64 修改配置檔案

[[email protected] ~]# ls /var/lib/mysql——預設的資料存儲的目錄 沒有啟動,目錄為空

啟動服務

[email protected] ~]# systemctl  status mysqld ● mysqld.service - MySQL Server    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)    Active: inactive (dead)      Docs: man:mysqld(8)            http://dev.mysql.com/doc/refman/en/using-systemd.html [[email protected] ~]# systemctl  start mysqld————啟動速度比較慢,因為要建立目錄

[[email protected] ~]# systemctl  status mysqld ● mysqld.service - MySQL Server    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)    Active: active (running) since 二 2018-07-10 10:45:58 CST; 24s ago      Docs: man:mysqld(8) [[email protected] ~]# ls /var/lib/mysql  ————首次建立就會建立這些目錄 auto.cnf         ib_buffer_pool  mysql               public_key.pem ca-key.pem       ibdata1         mysql.sock          server-cert.pem ca.pem           ib_logfile0     mysql.sock.lock     server-key.pem client-cert.pem  ib_logfile1     performance_schema  sys client-key.pem   ibtmp1          private_key.pem

[[email protected] ~]# systemctl  enable mysqld————開機自動開起

繼續安裝下一台伺服器

檢視服務資訊 端口資訊————3306 程序資訊——mysqld

ps aux | grep httpd???

[[email protected] ~]# ps -C mysqld————檢視程序

  PID TTY          TIME CMD  4240 ?        00:00:00 mysqld

[[email protected] ~]# systemctl  stop mysqld——停掉服務 [[email protected] ~]# ps -C mysqld————再次檢視程序

  PID TTY          TIME CMD

[[email protected] ~]# ss -ntulp | grep mysqld   ————檢視端口狀态

tcp    LISTEN     0      80       :::3306                 :::*                   users:(("mysqld",pid=4529,fd=18))

mysql 的相關的參數 1.主配置檔案     /etc/my.cnf 2.資料目錄        /var/log/mysql 3.端口              3306 4.程序              mysqld 5.傳輸協定         tcp 6.所屬者             mysql 7.所屬組            mysql

把資料存儲到資料庫伺服器上的過程 1.連接配接資料庫伺服器 1.1用指令行來連接配接 mysql -u使用者名 -h ip  -p 密碼 第一次是用初始密碼連接配接 [[email protected] ~]# ls /var/log/mysqld.log  /var/log/mysqld.log [[email protected] ~]# grep  password /var/log/mysqld.log   ————首次建立資料庫的密碼儲存在日志上

2018-07-10T02:45:38.706224Z 1 [Note] A temporary password is generated for [email protected]: *-ZPqB 密碼都是随機生成 [[email protected] ~]# mysql -hlocalhost -uroot -p'*-ZPqB

沒有建立使用者時,隻能通過本機進入資料庫,隻有root使用者 連接配接資料庫的工具 1.mysql 指令  : 環境切換  看狀态  退出控制 2.sql指令  :  資料庫的定義  查詢  操縱 授權語句 注意事項  指令不區分字母大少寫  (密碼  變量值除外) 每一條的SQL指令是以;進行結束或者分割 不支援Tab鍵 ,純手打輸入 \c可以廢除目前操作錯誤的指令

常用的SQL環境管理指令 DDL 的資料定義語句:creat   alter  drop DML的資料操作語句 : insert   update  dalete DCL的資料控制語句   : grant  revoke DTL 的資料事物語句     : commit  rollback  sovepoint

庫管理指令 show  databases; 展示庫 creat  database  庫名; 建立庫 use  庫名; 進入庫 select  database (); 展示所在的目前庫 show  tables; 顯示已有的表 drop  database  庫名; 删除庫

資料庫的命名規則 可以使用數字 字母  下劃線   但是不可以使用純數字 區分大小寫,具有唯一性 不可以使用指令關鍵字 和特殊字元

表的管理指令 建立指定名稱的表 -CREATE   TABLE   庫名。表名 字段名1 字段類型(寬度) 限制條件; 字段名2字段類型(寬度) 限制條件; ....... 字段名N字段類型(寬度) 限制條件;