CentOS Linux下MySQL 5.1.x的安裝

來源:互聯網
上載者:User

CentOS Linux下MySQL 5.1.x的安裝、最佳化和安全配置

下載頁面:http://dev.mysql.com/downloads/mysql/5.1.html#downloads

groupadd mysql
建立一個名為mysql的使用者組
useradd -g mysql mysql
在mysql使用者組下建立一個名為mysql的使用者

 

gunzip < mysql-VERSION.tar.gz | tar -xvf -
解壓下載到的.gz檔案
cd mysql-VERSION
進入解壓後的目錄
CFLAGS=″-O3 -mcpu=pentium4″ CXX=gcc CXXFLAGS=″-O3 -march=pentium4 -felide-constructors -fno-exceptions -fno-rtti″ ./configure –prefix=/home/mysql/ –without-debug –with-unix-socket-path=/home/mysql/tmp/mysql.sock –with-client-ldflags=-all-static –with-mysqld-ldflags=-all-static –enable-assembler –with-extra-charsets=gbk,gb2312,utf8 –without-innodb –without-isam –with-pthread –enable-thread-safe-client

配置mysql
gcc的相關參數:

-O3 
-O
-O1
最佳化.對於大函數,最佳化編譯佔用稍微多的時間和相當大的記憶體.
不使用`-O’選項時,編譯器的目標是減少編譯的開銷,使編譯結果能夠調試.語句是獨立的:如果在 兩條語句之間用斷點中止程式,你可以對任何變數重新賦值,或者在函數體內把程式計數器指到其他語句,以及從來源程式中 精確地擷取你期待的結果.
不使用`-O’選項時,只有聲明了register的變數才分配使用寄存器.編譯結果比不用 `-O’選項的PCC要略遜一籌.
使用了`-O’選項,編譯器會試圖減少目標碼的大小和執行時間.
如 果指定了`-O’選項, `-fthread-jumps’和`-fdefer-pop’選項將被 開啟.在有delay slot的機器上, `-fdelayed-branch’選項將被開啟.在即使沒有幀指標 (frame pointer)也支援調試的機器上, `-fomit-frame-pointer’選項將被開啟.某些機器上 還可能會開啟其他選項.

-O2
多最佳化一些.除了涉及空間和速度交換的最佳化選項,執行幾乎所有的最佳化工作.例如不進行迴圈展開(loop unrolling)和函數內嵌(inlining).和-O選項比較,這個選項既增加了編譯時間,也提高了產生代碼的 運行效果.
-O3
最佳化的更多.除了開啟-O2所做的一切,它還開啟了-finline-functions選項.
-O0
不最佳化.
如果指定了多個-O選項,不管帶不帶數字,最後一個選項才是生效的選項。
-mcpu=pentium4 根據CPU類型最佳化編譯,可以讓你的mysq表現更好!可選項目很多:i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp,athlon-mp,winchip-c6, winchip2 , c3.
-fomit-frame-pointer 對於不需要棧指標的函數就不在寄存器中儲存指標,因此可以忽略儲存和檢索地址的代碼,並將寄存器用於普通用途。所有”-O”層級都開啟著一選項,但僅在調試器可以不依靠棧指標運行時才有效。建議不需要調試的情況下顯式的設定它。

configure的相關參數:
–prefix=/home/mysql/ 指定安裝目錄
–without-debug 去除debug模式
–with-extra-charsets=gbk,gb2312,utf8 添加gbk,gb2312,utf8中文字元支援
–with-pthread 強制使用pthread庫(posix線程庫)
–enable-assembler 使用一些字元函數的彙編版本
–enable-thread-safe-client 以線程方式編譯用戶端
–with-client-ldflags=-all-static 以純靜態方式編譯用戶端
–with-mysqld-ldflags=-all-static 以純靜態方式編譯服務端
–without-isam 去掉isam表類型支援,現在很少用了,isam表是一種依賴平台的表
–without-innodb 去掉innodb表支援,innodb是一種支援交易處理的表,適合企業級應用

make
編譯
make install
安裝
cp support-files/my-medium.cnf /etc/my.cnf
將mysql的設定檔copy到/etc目錄下,並更名為my.cnf

/home/mysql下面有5個my-xxxx.cnf檔案
my-small.cnf 最小配置安裝,記憶體<=64M,資料數量最少
my-large.cnf 記憶體=512M
my-medium.cnf 32M<記憶體<64M,或者記憶體有128M,但是資料庫與web伺服器公用記憶體 
my-huge.cnf 1G<記憶體<2G,伺服器主要運行mysql
my-innodb-heavy-4G.cnf 最大配置安裝,記憶體至少4G

cd /home/mysql
進入安裝目錄
bin/mysql_install_db –user=mysql
以mysql使用者的身份建立資料表
chown -R root .
將mysql的主目錄(即/home/mysql)的屬主設為root使用者。這是官方文檔上的命令,但奇怪的是,如果將mysql的主目錄屬主設成root使用者,在運行了下面的bin/mysqld_safe –user=mysql &後則不能啟動mysql。問題出在“許可權”上,運行chown -R mysql .則可以用下面的命令正常啟動mysql。難道官方文檔有錯?希望大家一起來探討一下。
chown -R mysql var
將var目錄的屬主設為mysql使用者
chgrp -R mysql .
將mysql的主目錄的屬主設為mysql使用者組(注意:和前面的命令不一樣,這個命令是對使用者組進行賦權)
bin/mysqld_safe –user=mysql &
啟動mysql,如果一切正常的話,運行此命令後,不會有任何提示。
bin/mysqladmin -u root password password
修改root使用者的密碼,這裡的root使用者指的是mysql的root使用者,與Linux的root使用者無關。綠色的password就是你需要設定的新密碼,牢記!
bin/mysql -u root -p
如果正常的話,用這個名字可以登入,在輸入密碼後,出現mysql > 的提示符表明登入成功。用quit命令可退出

以下命令用於設定mysql開機自動運行
cd mysql-VERSION
再次進入解壓後的目錄,即源碼目錄。
cp support-files/mysql.server /etc/init.d/mysql
將mysql.server這個檔案copy到/etc/init.d/目錄下,並更名為mysql
chmod 755 /etc/init.d/mysql
給/etc/init.d/mysql這個檔案賦予“執行”許可權
chkconfig –level 345 mysql on
加入到開機自動運行,運行層級為3 4 5
service mysql restart
重啟mysql服務

Q:為什麼我用PHP串連Mysql時提示“connect fail:Can’t connect to local MySQL server through socket ‘/home/mysql/tmp/mysql.sock‘ (13)”
A: 這是因為PHP沒能正常的串連到Mysql通訊端,即mysql.sock檔案。首先,檢查/home/mysql/tmp/目錄下是否有 mysql.sock這個檔案。如果沒有,可能是mysql沒有正常啟動;如果有,可能是/home/mysql/tmp/這個目錄的許可權不夠,用chmod 755 /home/mysql/tmp可解決此問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.