1. 程式人生 > >Mysql基本用法(一)

Mysql基本用法(一)

 本博文是屬於一個系列,主要是根據馬哥視訊總結而來,主要是為了本人日後回看之用,也供道友參考

           MariaDB or Mysql:
    DBMS
    RDBMS:關係型資料庫管理系統
        C/S,通過專有協議
        關係模型:表(行,列),二維關係
        
        正規化:第一正規化,第二正規化,第三正規化
        關係運算:
                選擇
                投影
                
        資料庫:表,索引,試圖(虛表)
            SQL:Structure    Query    Language
                DDL,DML
                程式設計介面:
                        儲存過程
                        儲存函式
                        觸發器
                        事件排程器
                        程序式程式設計,選擇,迴圈
        三層模型:
            物理層       低層
            邏輯層       中層
            檢視層       高層
            
        解決方案:
            Oracle, Sybase, Infomix, DB2;
            Mysql, MariaDB, PostgreSQL, SQLite
            
        MySQL -->5.1 -->5.5 -->5.6 -->5.7
        MariaDB
            外掛式儲存引擎   show engines;
            單程序多執行緒
                連線執行緒  
                守護執行緒
        配置檔案,集中式的配置,能夠為Mysql的各應用程式提供配置資訊
            [mysqld]
            [mysqld_safe]
            [mysqld_multi]
            [server]
            [mysql]
            [mysqldump]
            [client]
            
                parameter - value
                
                跳過名稱資訊:
                        skip-name-resolve
                        skip_name_resolve
            查詢路徑:/etc/my.cnf -->/etc/mysql/my.cnf -->$MYSQL_HOME/my.cnf -->  --default-extra-file=/path/to/somedir/my.cnf --> ~/.my.cnf
                        越靠後的越是最終生效的
        安裝方法:
            os vendor:    rpm  
            MySQL:
                rpm
                展開可用
                原始碼
            安裝後的設定:
                (1)為所有root使用者設定密碼:
                    mysql> SET PASSWORD
                    mysql> UPDATE MYSQL.USER SET PASSWORD=PASSWORD('YOUR_PASS') WHERE CLUASE;
                    #mysqladmin
                (2)刪除所有的匿名使用者
                    mysql> DROP USER ''@'LOCALHOST';
                    
                    上述兩步驟可執行命令:mysql_secure_installation
                    
                (3)建議關閉主機名反解功能:
                        skip-name-resolve
                元資料資料庫:mysql
                    user,host等;
                    
                (客戶端)mysql --> (服務端)mysqld
                        客戶端程式:
                            mysql:互動式的CLI工具    mysqldump:備份功能,基於mysql協議向Mysqld發起查詢請求,並將查得的資料轉換成insert等寫操作語句儲存文字檔案中(匯出)
                            mysqladmin:基於MySQL協議管理mysqld;
                            mysqlimport:資料匯入工具;
                        非客戶端類的管理工具:
                            myisamchk  :檢查整理修復myisam表
                            myisampack :將myisam表打包查詢。
                        
                        如何獲取程式預設使用的配置:
                            #mysql --print-defaults
                            #mysqld --print-defaults
                        客戶端類應用程式的可用選項:
                            -u, --user-
                            -h, --host-
                            -p, --password-
                            -P, --port-
                            --protocal-(tcp|sock)  通常是tcp
                            -S, --socket-
                            -D, --database-
                            -C, --compress
                            
                            mysql -e -SQL-   執行完命令立即回來 例:mysql -e "show databases;"
                            
                            
                        mysql的使用模式:
                            互動模式
                                可執行命令有兩類
                                    客戶端命令:
                                        \h,help
                                    伺服器端命令:
                                        SQL,需要語句結束符;
                            指令碼模式
                                #mysql -uUSER -hHOST -pPASSWORD </path/from/somefile.sql
                                mysql> source /path/from/somefile.sql
                                前提:需要有執行許可權
                        服務端(mysqld):工作特性有多種定義方式
                            命令列選項
                            配置檔案引數
                            
                                獲取可用引數列表:
                                    mysqld --help --verbase  賊詳細,前提關閉mysql
                
                                獲取執行中的Mysql程序使用各伺服器引數及其值:
                                    mysql> show global variables;
                                    mysql> show session variables;    注意:其中有些引數支援執行時修改,會立即生效;有些引數不支援,且只能通過修改配置檔案,並重啟伺服器程式生效。
                                        有些引數作用域是全域性的,且不可改變,有些可以為每個使用者提供單獨的設定;
                                    
                                修改伺服器變數的值:
                                    mysql> help SET
                                    
                                    全域性:
                                        mysql> set global system_var_name=value;
                                        mysql> set @@global.system_var_name=value;
                                    會話:
                                        mysql> set [session] system_var_name=value;
                                        mysql> set @@[session.]system_var_name=value;
                                
                                狀態變數:用於儲存mysqld執行中的統計資料的變數;
                                    mysql> show global status;
                                    mysql> show [session] status;