搜尋
首頁資料庫mysql教程Mysql的編譯安裝以及簡單介紹

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

Sep 30, 2017 am 10:56 AM
mysql簡單

==========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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL中的存儲過程是什麼?MySQL中的存儲過程是什麼?May 01, 2025 am 12:27 AM

存儲過程是MySQL中的預編譯SQL語句集合,用於提高性能和簡化複雜操作。 1.提高性能:首次編譯後,後續調用無需重新編譯。 2.提高安全性:通過權限控制限制數據表訪問。 3.簡化複雜操作:將多條SQL語句組合,簡化應用層邏輯。

查詢緩存如何在MySQL中工作?查詢緩存如何在MySQL中工作?May 01, 2025 am 12:26 AM

MySQL查詢緩存的工作原理是通過存儲SELECT查詢的結果,當相同查詢再次執行時,直接返回緩存結果。 1)查詢緩存提高數據庫讀取性能,通過哈希值查找緩存結果。 2)配置簡單,在MySQL配置文件中設置query_cache_type和query_cache_size。 3)使用SQL_NO_CACHE關鍵字可以禁用特定查詢的緩存。 4)在高頻更新環境中,查詢緩存可能導致性能瓶頸,需通過監控和調整參數優化使用。

與其他關係數據庫相比,使用MySQL的優點是什麼?與其他關係數據庫相比,使用MySQL的優點是什麼?May 01, 2025 am 12:18 AM

MySQL被廣泛應用於各種項目中的原因包括:1.高性能與可擴展性,支持多種存儲引擎;2.易於使用和維護,配置簡單且工具豐富;3.豐富的生態系統,吸引大量社區和第三方工具支持;4.跨平台支持,適用於多種操作系統。

您如何處理MySQL中的數據庫升級?您如何處理MySQL中的數據庫升級?Apr 30, 2025 am 12:28 AM

MySQL數據庫升級的步驟包括:1.備份數據庫,2.停止當前MySQL服務,3.安裝新版本MySQL,4.啟動新版本MySQL服務,5.恢復數據庫。升級過程需注意兼容性問題,並可使用高級工具如PerconaToolkit進行測試和優化。

您可以使用MySQL的不同備份策略是什麼?您可以使用MySQL的不同備份策略是什麼?Apr 30, 2025 am 12:28 AM

MySQL備份策略包括邏輯備份、物理備份、增量備份、基於復制的備份和雲備份。 1.邏輯備份使用mysqldump導出數據庫結構和數據,適合小型數據庫和版本遷移。 2.物理備份通過複製數據文件,速度快且全面,但需數據庫一致性。 3.增量備份利用二進制日誌記錄變化,適用於大型數據庫。 4.基於復制的備份通過從服務器備份,減少對生產系統的影響。 5.雲備份如AmazonRDS提供自動化解決方案,但成本和控制需考慮。選擇策略時應考慮數據庫大小、停機容忍度、恢復時間和恢復點目標。

什麼是mySQL聚類?什麼是mySQL聚類?Apr 30, 2025 am 12:28 AM

MySQLclusteringenhancesdatabaserobustnessandscalabilitybydistributingdataacrossmultiplenodes.ItusestheNDBenginefordatareplicationandfaulttolerance,ensuringhighavailability.Setupinvolvesconfiguringmanagement,data,andSQLnodes,withcarefulmonitoringandpe

如何優化數據庫架構設計以在MySQL中的性能?如何優化數據庫架構設計以在MySQL中的性能?Apr 30, 2025 am 12:27 AM

在MySQL中優化數據庫模式設計可通過以下步驟提升性能:1.索引優化:在常用查詢列上創建索引,平衡查詢和插入更新的開銷。 2.表結構優化:通過規範化或反規範化減少數據冗餘,提高訪問效率。 3.數據類型選擇:使用合適的數據類型,如INT替代VARCHAR,減少存儲空間。 4.分區和分錶:對於大數據量,使用分區和分錶分散數據,提升查詢和維護效率。

您如何優化MySQL性能?您如何優化MySQL性能?Apr 30, 2025 am 12:26 AM

tooptimizemysqlperformance,lofterTheSeSteps:1)inasemproperIndexingTospeedUpqueries,2)使用ExplaintplaintoAnalyzeandoptimizequeryPerformance,3)ActiveServerConfigurationStersLikeTlikeTlikeTlikeIkeLikeIkeIkeLikeIkeLikeIkeLikeIkeLikeNodb_buffer_pool_sizizeandmax_connections,4)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具