Mysql的編譯安裝以及簡單介紹

黄舟
發布: 2017-09-30 10:56:21
原創
1343 人瀏覽過

==========MYSQL運作原理圖:

  

#1》資料庫簡介:簡單的說資料庫(database)就是一個儲存資料的倉庫,它將資料依照特定的規則儲存到磁碟上,透過資料庫管理系統,能夠有效的管理儲存在資料庫中                           的資料;
SQL語言是一種查詢和設計語言,主要用於儲存數據,查詢資料更新和管理關係資料庫;
      SQL語言總共分為三個部分

           DDL(Data Definition Language)語句,使用於定義資料庫表、試圖索引和觸發器等
​​            create
          alter
     〠alter
     rename
           truncate
          句詞插入語文,查詢資料、更新資料和刪除資料
          select
          〠#o    delete
    DCL(Data Control Language)語句,用於控制使用者的存取權限
          grant
# revoke

   常見的資料庫系統有哪些:
         1.甲骨文Oracle

          4.微軟Access與SQL Server

        5.開源PostgreSQL
        6.開源Mysql

  Mysql特性:
       1.跨平台,支援多種作業系統,#AIX FreeBSD HPUXUXware Linux 平台,支援多元2.支援多執行緒,可以充分的利用硬體資源(CPU資源)
       3.支援大型資料庫,可以處理擁有上千萬條大型資料庫。
       4.支援多種外掛程式儲存引擎

mysql-server-5.6

    1)InnoDB現在可以限制大量資料表開啟的時候記憶體佔用過多的問題(例如這裡提列提到的)(第三方已有補丁)
    2)InnoDB效能加強。如分拆kernel mutex;flush操作從主線程分離;多個perge線程;大內存優化等
    3)InnoDB死鎖資訊可以記錄到error 日誌,方便分析

    4)MySQL5.6支援延遲時複製,可以讓slave跟master之間控制一個時間間隔,方便特殊情況下的資料恢復。

    5)表格分割功能增強

    6)MySQL行級複製功能加強,可以降低磁碟、記憶體、網路等資源開銷(只記錄能確定行記錄的欄位即可)

    7 crash-safe
    8)複製事件採用crc32校驗,增強master/slave 複製資料一致性
    9)新增log_bin_basename(以前variables裡面沒有binlog位置信息,對資料庫的監管很不方便)

  2》編譯安裝MYSQL:
       1>安裝依賴套件:
                

yum install gcc gcc-c++ ncurses-devel perl cmake bison
登入後複製

        3>安裝Mysql:

             

# groupadd mysql
             # useradd mysql –g mysql –s /sbin/nologin
             #mkdir -p /usr/local/mysql //Mysql的安装目录
             #mkdir -p /data/mysqldb  //Mysql数据目录
             #mkdir -p /data/mysqldb/binlog //创建BINLOG日志目录   
             #mkdir -p /data/mysqldb/log   //创建MYSQL 日常LOG目录
登入後複製

    ***注意:重新運行配置,需要刪除CMakeCache.txt====解析:

 

##  ***注意##    #cmake  編譯命令

      -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 設置mysql安裝目錄


      -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 設定監聽套接字路徑,這必須是一個絕對路徑名。預設為/tmp/mysql.sock
      -DSYSCONFDIR=/etc 設定檔放在/etc/下面
      -DDEFAULT_CHARSET=gbk 設定伺服器的字元集。
                                               西歐)字符集。 cmake/character_sets.cmake檔案包含允許的字元集名稱欄位                                         表。
      -DDEFAULT_COLLATION=gbk_chinese_ci 設定伺服器的排序規則。
      -DWITH_INNOBASE_STORAGE_ENGINE=1
      -DWITH_ARCHIVE_STORAGE_ENGINE=1
  -DWITH_ARCHIVE_STORAGE_ENGINE=1
     四 儲存引擎選項:
    MyISAM,MERGE,MEMORY,和CSV引擎是預設編譯到伺服器中,並不需要明確地安裝。
    靜態編譯一個儲存引擎到伺服器,使用-DWITH_engine_STORAGE_ENGINE= 1
      可用的儲存引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), BLACK                                                (Performance Schema)

      -DMYSQL_DATADIR=/data/mysqldb  設置mysql數據庫文件目錄

      -DMYSQL_TCP_PORT=3306 設定mysql伺服器監聽埠,預設為3306

##      -DENABLE_DOWNLOADS=1
           例如,啟用此選項(設定為1),cmake將下載Google所使用的測試套件執行單元測試

        4> make && make isntall
   5>初始化:
          給Mysql安裝目錄進行授權
         my  my      my  my        給Mysql資料儲存目錄授權
            # chown  mysql:mysql /data/mysqldb -R
          給Mysl日誌目錄進行授權
          。#chown mysql     。#chown mysql〠/#mysql〠/#mysql〠 mysql my mysql〠/#mysql.   #chown mysql:mysql /data/mysqldb/log/
        開始初始化:
           /usr/local/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/sql #mydir=/data/複製腳本#           # cp /usr/local/mysql/support-files/mysql.server   /mysql.server /etc/init.d/mysqld /my      mysqld

               修改mysql服務啟動腳本(多實例才需要)
          # vim /etc/init.d/mysqld
       my       datadir=/data/mysqldb

            6> ;配置文件

        以後在企業裡面沒有現成my.cnf ,如果編譯安裝後,沒有在/etc/找到my.cnf 那麼請到原始的編譯目錄,也就是解壓包的目錄裡面找到support-files這個目                 錄,將my-default.cnf 拷貝至/etc/my.cnf;


      files/my-default.cnf /etc/my. cnf

=========設定檔詳解:
  # vim /etc/my.cnf
[client]
port = 3306           //客戶端所連接的連接埠號碼
socket = /tmp/mysql.sock  //客戶端所連接的sock檔案存放位置

[mysqld]
#base
port = 3306         //mysql的預設連接埠號碼,可修改
user = mysql        //mysql使用者指定
socket = /tmp/mysql.sock  //連接所使用的連接埠號碼
pid-file = /tmp/mysql.pid  //進程執行的主PID檔案
basedir = /usr/local/mysql  //Mysql安裝目錄
datadir = /data/mysqldb  //Mysql資料目錄
tmpdir = /opt/mysqltmp   //Mysqlsql表目錄
open_files_limit = 10240  //開啟檔案句柄的數量
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#federated   //支援sql語法和資料校驗等.sql_mode三種模式#ANSIImIm;插入資料進行校驗,如果不符合定義類型或長度,對資料類型調整或截斷保存,報「warning」警告

TRADITIONAL模式、嚴格模式,當向mysql資料插入資料時、進行資料的嚴格校驗,保證資料不能插入,報error錯誤,用於事物時,會進行事物回驗.

STRICT_TRANS_TABLES模式。嚴格模式,進行資料的嚴格校驗,錯誤資料不能插入,報error錯誤.

server_id = 706 //主從複製唯一的服務辨識號碼,數值位於1 到
#replicate-do -db = posp  //定義唯一複製的函式庫
#replicate-ignore-db = mysql //定義唯一複製的函式庫
#log-slave-updates = 1 //這個選項之再主從複製。從伺服器上開啟複製主的資訊
event_scheduler=1   //開啟時間調度器

max_connections = 2000 //#最大同時連線數,增加該值需要對應增加允許開啟的檔案描述符數
max_connect_errors = 10000 //如果某個使用者發起的連線error超過該數值,則該使用者的下次連線將被阻塞,
interactive_timeout = 600 //伺服器關閉互動連線前等待活動的秒數
wait_timeout = 600 //伺服器關閉非互動連線之前等待活動的秒數
skip-name-resolve //#garnt時,必須使用ip,不能​​使用主機名,停用DNS解析
sync_binlog= 0 //可以保證事務的安全。預設為0
log_bin_trust_function_creators = 1  //開啟mysql可自訂函數

character-set-server = utf8  //設定字元集
default_storage_engine = InnoDB //定義預設引擎

#log
log-bin = /data/mysqldb/binlog/mysql-bin  //指定binlog二進位日誌的檔案名稱
binlog_cache_size = 32m   //binlog的快取大小
max_binlog_cache_size = 10g //設定最大的binlog快取
binlog_stmt_cache_size = 32m //設定最小的binlo快取
table_open_cache = 2048 //表格描述子快取大小,可減少檔案開啟/關閉次數
max_binlog_size = 1024m / /設定binlog日誌檔案最大為1G
binlog_format = mixed //binlog日誌格式.
log_output = FILE //確認輸出到日誌檔案
log-error = /data/mysqldb/log/mysql-error .log //mysql系統錯誤日誌輸出
slow_query_log = 1  //開啟慢速日誌記錄
slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定義慢日誌輸出的路徑
general_log = 0  //定義普通日誌
general_log_file = /data/mysqldb/log/mysql-general-query.log //定義普通日誌輸出的路徑
expire-logs-days = 30 //日誌保留的時間30天
relay-log = /data/mysqldb/binlog/relay-bin //定義reloa_log複製的位址
relay-log-index= /data/mysqldb/binlog/relay-bin.index //定義reloa_log索引

#buffer
sort_buffer_size = 2m  //#MyISAM表變更時重新排序所需的緩衝。一般64M足矣
read_buffer_size = 2m //用來做MyISAM表全表掃描的緩衝大小.
read_rnd_buffer_size = 2m //#當在排序之後,從一個已經排序好的序列中讀取行時,行資料會從這個緩衝中讀取來防止磁碟尋道
join_buffer_size = 2m //# InnoDB用來快取資料和

net_buffer_length = 16k //執行mysqldump時,net buffer length的最大上限是16Mb,預設值是1Mb
max_allowed_pa​​cket = 512m  //每個連接獨立的大小.大小動態增加
bulk_insert_buffer_size = 32m //# 當突發插入被偵測到時此緩衝將被分配用於myisam
max_heap_table_size = 512m//#記憶體表的大小
tmp_table_size = 512m//# 內部(記憶體中)暫存資料表的最大大小
thread_cache_size = 100 //#快取可重複使用的執行緒數適當的調整
query_cache_size = 256m //#指定MySQL查詢結果緩衝區的大小。調優可以適當調整
query_cache_limit = 10m //#快取單一SQL的結果集上限。預設4KB。調優可以適當調整
query_cache_min_res_unit = 4k
key_buffer_size = 16m //#關鍵字緩衝的大小, 一般用來緩衝MyISAM表的索引區塊
myisam_sort_buffer_size = 64m //# 這在每個執行緒中被分配.所以在設定大值時需要小心
myisam_max_sort_file_size = 10g //MySQL重建索引時所允許的最大暫存檔案的大小如果檔案大小比此值更大,索引會透過鍵值緩衝建立(更慢)
myisam_repair_threads = 1 //#如果一個表格擁有超過一個索引, MyISAM

#innodb
innodb_file_per_table = 1 #//#可以修改InnoDB為獨立表空間模式,每個資料庫的每個表都會產生一個資料空間
innodb_data_file_path = ibdata1:2048M:autoextend //#如果你只有單一邏輯驅動保存你的資料,一個單一的自增文件就夠好了
innodb_log_file_size = 128m //#在日誌群組中每個日誌檔案的大小,
innodb_log_files_in_group = 3 //# 在日誌群組中的檔案總數.  通常來說2~3是比較好的
innodb_buffer_pool_size = 1g //innodb快取池大小
innodb_buffer_pool_instances = -1
innodb_max_dirty_pages_pct = 70 //#在InnoDB緩衝池中最大允許的髒頁的比例。 #innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 16m # 用來緩衝日誌資料的緩衝區的大小.  當此值快滿時, InnoDB將必須刷新資料到磁碟區上#1odb_trxcom_vod ##0代表日誌隻大約每秒寫入日誌檔案並且日誌檔案刷新到磁碟# 2代表日誌寫入日誌檔案在每次提交後,但是日誌檔案只有大約每秒才會刷新到磁碟上

[mysql]
no-auto-rehash #可以在指令可以使用tab鍵補齊
prompt = (\u@\h) [\d]\_ #在Mysql指令顯示主機名稱
default-character-set = utf8  //設定字元集合

           7>啟動服務與設定環境變數:
        #:vim #vprom /

            MYSQL=/usr/local/mysql/bin

           export PATH
          #:source /etc/profile //生效

          啟動服務服務
#             # /etc/init.d/mysqld start
##         的時候。在主(master)伺服器上關閉此選項,在從(slave)上面開啟此選項 

  ====================常見問題分析:
      啟動資料庫後遇到的錯誤:

            


         解決方法:## )一行對檔案配置」的註解 2》刪除掉ibdata1   ibprofile0  ibprofile1

  錯誤二:

    1》需要建立一個缺少的資料夾;         mysql:mysql   /tmpopt/

    3》可能還需要刪除一些文件,在自己的目錄下找到以下文件並刪除:

           #ibdata1 #11file1file#> 1file#1#11file#1#131file#1#131file#121file#121file#121file#。

以上是Mysql的編譯安裝以及簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!