mysql服務端源碼(MySQL源代碼)

本文目錄一覽:

源碼安裝mysql後可不可以scp到另外一個伺服器

源碼安裝mysql後可不可以scp到另外一個伺服器

建立MYsql資料庫必須擁有一個mysql賬戶,賬戶是用戶登錄的鑰匙,也可以理解為一個登陸憑證,就好像現在物業公司的門禁系統一樣沒有任何賬戶的系統是不存在與實際應用中的所以mysql資料庫源碼安裝是必須設置一個管理員賬戶才可以繼續的

怎樣在Linux環境下安裝部署MySQL資料庫系統

如何在linux下安裝mysql資料庫並配置

關於本文

本文將以MySQL 5.0.51為例,以CentOS 5為平台,講述MySQL資料庫的安裝和設置。

2. 關於MySQL

MySQL是最流行的開源SQL資料庫管理系統,它由MySQL AB開發、發布和支持。MySQL AB是一家由MySQL開發人員創建的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的註冊商標。

MySQL是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器。MySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟體中去。

MySQL的官方發音是「My Ess Que Ell」,而不是「My sequel」。但是你也可以使用「My sequel」和其他的方言。

MySQL網站()提供了關於MySQL和MySQL AB的最新的消息。

MySQL具有如下特點或特性:

MySQL是一個資料庫管理系統;

MySQL是一個關係資料庫管理系統;

MySQL是開源的;

MySQL伺服器是一個快的、可靠的和易於使用的資料庫伺服器;

MySQL伺服器工作在客戶/伺服器或嵌入系統中;

有大量的MySQL軟體可以使用。

3. MySQL的安裝

MySQL有兩種安裝方式:源碼包安裝和二進位包安裝。這兩種方式各有特色:二位制包安裝不需編譯,針對不同的平台有經過優化編譯的不同的二進位文件以及包格式,安裝簡單方便;源碼包則必須先配置編譯再安裝,可以根據你所用的主機環境進行優化,選擇最佳的配置值,安裝定製更靈活。下面分別介紹這兩種安裝方式。

3.1 源碼包方式安裝

3.1.1 在linux系統中添加運行Mysql的用戶和組

/usr/sbin/groupadd mysql

/usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql

3.1.2 下載最新穩定發行版(GA)的MySQL軟體

訪問MySQL網站下載最新穩定發行版的MySQL源碼包。本文使用的是5.0.51版本,在linux系統下用下面的命令下載:

wget

3.1.3 解壓縮下載的源碼包

首先建立一個工作目錄( 筆者建議的目錄為/usr/local/src/mysql ) :

mkdir -p /usr/local/src/mysql

將下載的源碼包移至工作目錄:

mv mysql-5.0.51.tar.gz /usr/local/src/mysql

進入工作目錄並用tar命令解壓源碼包:

cd /usr/local/src/mysql

tar zxvf mysql-5.0.51.tar.gz

命令執行結束後,當前工作目錄下將生成一個新的子目錄mysql-5.0.51,此目錄下即為mysql的源碼文件。

3.1.4 配置Makefile文件

進入MySQL源碼目錄:

cd mysql-5.0.51

執行下面的命令可查看可配置選項:

./configure –help

本文使用的配置命令格式如下:

CC=gcc CFLAGS=”-O3″ CXX=gcc CXXFLAGS=”-O3 -felide-constructors -fno-exceptions -fno-rtti” ./configure –prefix=/usr/local/mysql –enable-thread-safe-client –enable-assembler –with-big-tables –with-client-ldflags=-all-static –with-mysqld-ldflags=-all-static –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=complex

配置選項說明:

CC:C編譯器的名稱(用於運行configure),本文示例為gcc

CFLAGS:C編譯器的標誌(用於運行configure),本文示例為-O3,指定優化級別為3

CXX:C++編譯器的名稱(用於運行configure),本文示例為gcc

CXXFLAGS:C++編譯器的標誌(用於運行configure)

–prefix:指定安裝目錄,本文示例為/usr/local/mysql

–localstatedir:指定默認資料庫文件保存目錄,默認為安裝目錄下的var目錄

–enable-thread-safe-client:編譯線程安全版的MySQL客戶端庫

–enable-assembler:使用一些字元函數的彙編版本

–with-client-ldflags:客戶端鏈接參數,本文示例為指定靜態編譯mysql客戶端

–with-mysqld-ldflags:伺服器端鏈接參數,本文示例為指定靜態編譯mysql伺服器

–with-big-tables:在32位平台上支持大於4G行的表

–with-charset:指定默認字符集。mysql默認使用latin1(cp1252)字符集,可以使用此選項更改。字符集可以是big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或win1251ukr。

–with-collation:指定默認校對規則。mysql默認使用latin1_swedish_ci校對規則,可以使用此選項更改。

–with-extra-charsets:伺服器需要支持的字符集,有三種可能的值:空格間隔的一系列字符集名;complex ,包括不能動態裝載的所有字符集;all,將所有字符集包括進二進位。本文示例為complex。

注意:要想更改字符集和校對規則,要同時使用–with-charset和–with-collation選項。 校對規則必須是字符集的合法校對規則。(在mysql中使用SHOW COLLATION語句來確定每個字符集使用哪個校對規則)。

3.1.5 編譯源代碼

執行下面的命令編譯源代碼:

make

3.1.6 安裝

執行下面的命令安裝mysql到目標路徑:

make install

3.1.7 複製默認全局啟動參數配置文件到/etc目錄

源碼方式安裝需要手動複製配置文件,配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,選擇跟你的環境相接近的一個複製到/etc目錄,並做適當修改。關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔。

本文示例選擇my-medium.cnf,執行下面的命令將其複製到/etc目錄:

cp ./support-files/my-medium.cnf /etc/my.cnf

3.1.8 初始化授權表

執行下面的命令初始化授權表:

./scripts/mysql_install_db –user=mysql

3.1.9 更改mysql數據目錄屬主和許可權

默認資料庫文件保存目錄為安裝目錄下的var目錄,執行configure命令時可通過–localstatedir參數指定不同的目錄,本文示例為默認位置。

chown -R mysql.mysql /usr/local/mysql/var

chmod -R 700 /usr/local/mysql/var

3.1.10 設置開機自啟動服務控制腳本

執行下面的命令複製啟動腳本到資源目錄:

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

執行下面的命令增加mysqld服務控制腳本執行許可權:

chmod +x /etc/rc.d/init.d/mysqld

執行下面的命令將mysqld服務加入到系統服務:

chkconfig –add mysqld

執行下面的命令檢查mysqld服務是否已經生效:

chkconfig –list mysqld

命令輸出類似下面的結果:

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

表明mysqld服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以後可以使用service命令控制mysql的啟動和停止。

啟動mysqld服務:

service mysqld start

停止mysqld服務:

service mysqld stop

執行下面的命令關閉開機自啟動:

chkconfig mysqld off

執行下面的命令可以改變開機自啟動的運行級別為3、5:

chkconfig –level 35 mysqld on

3.1.11 將mysql的bin目錄加入PATH環境變數

編輯/etc/profile文件:

vi /etc/profile

在文件最後添加如下兩行:

PATH=$PATH:/usr/local/mysql/bin

export PATH

執行下面的命令使所做的更改生效:

. /etc/profile

3.2 二進位包方式安裝

3.2.1 從安裝媒體安裝

Mysql二進位包已經包含在CentOS 5的安裝媒體中,可以直接從安裝媒體中安裝下面三個rpm包:

mysql-5.0.22-2.1.0.1.i386.rpm

mysql-devel-5.0.22-2.1.0.1.i386.rpm

mysql-server-5.0.22-2.1.0.1.i386.rpm

不同的版本文件名有所不同,請注意區分。

執行下面的命令安裝:

rpm -iUvh mysql-5.0.22-2.1.0.1.i386.rpm

rpm -iUvh mysql-devel-5.0.22-2.1.0.1.i386.rpm

rpm -iUvh mysql-server-5.0.22-2.1.0.1.i386.rpm

3.2.2 通過yum安裝

如果你安裝的機器此時可以連接到互聯網,筆者建議使用yum命令來簡化安裝過程:

yum install mysql-server mysql-devel mysql

yum將自動從centos的鏡像站點查找你指明的軟體的最新二進位包,並檢查軟體包依賴關係,安裝軟體的同時自動安裝其依賴的軟體包。

如何配置全世界最小的 MySQL 伺服器

首先我們先解壓Mysql的安裝包,建議解壓到 /usr/local/src 目錄中方便管理

# tar xf mysql-5.6.16.tar.gz

# cd mysql-5.6.16

然後我們執行以下指令對源碼包進行預處理:

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

配置中指定了安裝路徑、資料庫路徑、配置文件路徑等參數。等配置結束後可以使用 echo $? 查看返回值確定是否配置成功。我在編譯時便遇到了一個名為 ncurses-devel 的依賴包沒有安裝,具體信息請閱讀錯誤提示。等我用yum源安裝好後發現無法繼續cmake了,只好刪除後重新解壓源碼包才配置成功的。好了 一切沒問題了就開始 make make install 吧!

# make make install

由於源碼包比較大,解壓後我統計了下,竟然291M,天啊這可得慢慢等待了。我花費了一個多小時才編譯完成的,也是夠慢了。

編譯安裝完成後會生成 /usr/local/mysql 這樣一個文件夾,如果選用了直接解壓二進位包,就把它解壓到 /usr/local 中。我們進入這個文件夾中看看

bin 這個目錄存放著mysql的伺服器和客戶機程序,我們應該添加到環境變數

data 這個文件夾就是資料庫目錄

include 這裡存放著mysql開發用的函數頭文件,可以被其他源碼包編譯時依賴

lib Mysql運行需要的運行庫

scripts Mysql初始化資料庫的腳本,更改資料庫目錄後也需要進行初始化

man Mysql是使用手冊,需要讓man命令識別這個路徑才能使用

support-files 其中存放著Mysql的配置文件模板和服務控制腳本等文件

Mysql的配置文件為 /etc/my.cnf ,資料庫目錄為 /usr/local/mysql/data

接下來就開始部署這些文件,然後讓Mysql啟動起來吧!首先建立mysql用戶和組,並不創建家目錄,不允許登陸系統

# groupadd mysql

# useradd -M -s /sbin/nologin -g mysql mysql

設置mysql安裝目錄的屬主和屬組

# chown -R mysql:mysql /usr/local/mysql/

給資料庫目錄可讀可寫的許可權

# chmod 777 -R /usr/local/mysql/data/

複製配置文件和服務控制腳本到相應位置

# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

編輯配置文件 /etc/mysql.cnf,添加:

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

指定安裝目錄和資料庫目錄就可以了,其他參數先不用管。如圖一所示

接下來就可以初始化資料庫了

# cd /usr/local/mysql

# scripts/mysql_install_db –user=mysql

結果如圖二所示就代表成功了,可以用 echo $? 查看返回值

現在就可以啟動Mysql資料庫服務了 它的啟動命令是 mysqld

# service mysqld start

然後出現大寫的 ” SUCCESS “就代表啟動成功了,然後用netstat看看它監聽的埠吧!

# netstat -anpt | grep mysqld

我們發現它默認監聽在 TCP 的” 3306 “埠

我們可以用它自帶的 mysql 命令連接進去看看

用 -u 指定用戶名 -h 指定主機 -p 來輸入密碼

# /usr/local/mysql/bin/mysql -u root -h localhost -p

這個root用戶可不是系統登陸的root用戶,而是mysql伺服器中的一個默認用戶。由於我們還沒有給root用戶設置密碼,直接回車就可以進如了,如果出現一個” mysql “就代表成功了。輸入” exit “命令退出。

總使用絕對路徑來執行mysql命令也不是辦法,我們把它的環境變數配置下吧

# echo ‘export PATH=$PATH:/usr/local/mysql/bin’ /etc/profile.d/mysql.sh

# source /etc/profile.d/mysql.sh

好啦,看看是不是能直接執行mysql命令了呢

接下來就分析一下my.cnf這個配置文件的各參數意義

basedir mysql的安裝目錄

datadir 資料庫目錄

port 指定服務埠,默認3306 埠

server_id pid文件路徑

socket 套接字

skip-locking 可避免mysql的外部鎖定,降低系統出錯幾率

skip-name-resolve 禁止mysql對外部連接進行DNS解析,可節約時間

key_buffer_size 設置索引緩存區大小,合理調節這個數值可以獲得更好的索引處理性能,過度調大反而降低性能。參數沒有可以自己添加

sort_buffer_size 設置排序緩存區的大小 (每個連接獨佔)

read_buffer_size 設置查詢操作緩存區的大小 (每個連接獨佔)

join_buffer_size 設置聯合查詢操作緩存區的大小 (每個連接獨佔)

max_connections 設置伺服器最大連接進程數

mysql的root用戶沒有密碼是非常不安全的,接下來我們為它配置一個密碼。注意 要給root用戶添加密碼是需要啟動服務的,請確保你的Mysqld服務處於運行狀態

# mysqladmin -u root password “himysql”

如果已經設置了密碼,想去修改 就要在命令上添加 -p 參數,-p 參數是用來提醒輸入密碼的,就和mysql命令一樣

# mysqladmin -u root password “himysql” -p

接下來輸入舊密碼就可以更改新密碼了,再試一試,登陸mysql伺服器是不是需要使用密碼了呢?

如果是在本機登陸mysql伺服器 -h 選項是可以省略的,如果使用root登陸,連-u 參數都可以省略,如果沒有密碼登錄,連 -p 都是可以省略的,比如你第一次啟動服務,直接mysql就可以連接上去了

這個mysqladmin是Mysql伺服器的管理程序,可用於執行檢察配置文件、檢查服務狀態、關閉伺服器、創建資料庫以及刪除資料庫等的系統管理操作。其格式如下:

mysqladmin 選項 參數 . . .

create db_name 創建一個名為db_name的新資料庫

debug 將debug信息寫入錯誤日誌

drop db_name 刪除一個名為db_name的資料庫

extended-status 顯示伺服器狀態變數和他們的值

flush-hosts 刷新緩存中的所有信息

flush-logs 刷新所有日誌信息

flush-privileges 重新載入授權表

flush-status 清除狀態變數

flush-tables 刷新所有的表

flush-threads 刷新線程的緩存

ping 顯示伺服器運行狀態

processlist 正在運行伺服器線程的列表

password new_password 更改密碼

shutdown 關閉伺服器

start-slave 在從伺服器上啟動同步

stop-slave 在從伺服器上關閉同步

-u root 指定用戶

-h localhost 指定連接的主機

-p 指定需要輸入密碼

其中一些概念不懂沒關係,先眼熟就行了,在後面的學習中將會慢慢了解

當我們用mysql命令登陸到伺服器後,出現的” mysql “我們應該怎麼操作呢?

在 mysql 提示符下可以使用SQL語言或命令對資料庫進行管理,每條SQL語句都以 ” ; ” 結束,且不區分大小寫。用戶可以通過上下鍵調出曾經輸入過的命令。

對資料庫的操作不外乎增刪查改,下面就看看一些很簡單的命令吧!

show databases; 查看當前存在的資料庫

use 資料庫名稱; 使用指定的資料庫

show tables; 查看指定資料庫有哪些表

create database 資料庫名稱; 創建新資料庫

drop 資料庫名稱; 刪除資料庫

編譯安裝Mysql伺服器到此也已經差不多了,除了編譯時間長了些,按照步驟一步一步下來還是蠻簡單的。如果想知道Mysql資料庫的更多操作請看下一章:Mysql資料庫的管理與備份恢復。一定要動手做一做哦!Enjoy Your Time !o(^▽^)o

怎麼將下載的(php+mysql+apache)網站模版源代碼放到的apache伺服器上去運行成功啊,求指導

先用FTP客戶端如flashfxp這在的軟體把資料上傳到apache伺服器,再把資料庫MYSQL導上去,可以用phpmyadmin等,導完後把程序裡面的資料庫鏈接改成你的

如何下載mysql資料庫源代碼

mysql官方網站就有呀:,選擇source code

或者你到這個網站上去下載:,到這個網址,右邊有個查看講義資料,那個裡面就有

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128014.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:24
下一篇 2024-10-03 23:24

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • g3log源代碼學習

    g3log是一個高性能C++日誌庫,其代碼十分精簡和可讀性強,本文將從3個方面詳細介紹g3log源代碼學習。 一、g3log源代碼整體架構 g3log的整體架構十分清晰,其中有3個…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • 數字孿生源代碼的介紹

    數字孿生源代碼是一種用於模擬現實世界的技術。它將現實世界的實體或場景進行數字化,使得我們可以通過計算機程序對其進行模擬,以便進行分析和預測。數字孿生源代碼包含了許多組件和演算法,下面…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • 源碼是什麼

    源碼是一段計算機程序的原始代碼,它是程序員所編寫的可讀性高、理解性強的文本。在計算機中,源碼是指編寫的程序代碼,這些代碼按照一定規則排列,被計算機識別並執行。 一、源碼的組成 源碼…

    編程 2025-04-27

發表回復

登錄後才能評論