目錄
    5)表格分割功能增強
首頁 資料庫 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

熱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漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL的角色:Web應用程序中的數據庫 MySQL的角色:Web應用程序中的數據庫 Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

centos7如何安裝mysql centos7如何安裝mysql Apr 14, 2025 pm 08:30 PM

優雅安裝 MySQL 的關鍵在於添加 MySQL 官方倉庫。具體步驟如下:下載 MySQL 官方 GPG 密鑰,防止釣魚攻擊。添加 MySQL 倉庫文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 倉庫緩存:yum update安裝 MySQL:yum install mysql-server啟動 MySQL 服務:systemctl start mysqld設置開機自啟動

centos安裝mysql centos安裝mysql Apr 14, 2025 pm 08:09 PM

在 CentOS 上安裝 MySQL 涉及以下步驟:添加合適的 MySQL yum 源。執行 yum install mysql-server 命令以安裝 MySQL 服務器。使用 mysql_secure_installation 命令進行安全設置,例如設置 root 用戶密碼。根據需要自定義 MySQL 配置文件。調整 MySQL 參數和優化數據庫以提升性能。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

See all articles