CentOS Linux下MySQL 5.1.x的安裝、優(yōu)化和安全配置
下載頁(yè)面:http://dev.mysql.com/downloads/mysql/5.1.html#downloads
groupadd mysql
新建一個(gè)名為mysql的用戶組
useradd -g mysql mysql
在mysql用戶組下新建一個(gè)名為mysql的用戶
gunzip < mysql-VERSION.tar.gz | tar -xvf -
解壓下載到的.gz文件
cd mysql-VERSION
進(jìn)入解壓后的目錄
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的相關(guān)參數(shù):
-O3
-O
-O1
優(yōu)化.對(duì)于大函數(shù),優(yōu)化編譯占用稍微多的時(shí)間和相當(dāng)大的內(nèi)存.
不使用`-O’選項(xiàng)時(shí),編譯器的目標(biāo)是減少編譯的開(kāi)銷,使編譯結(jié)果能夠調(diào)試.語(yǔ)句是獨(dú)立的:如果在 兩條語(yǔ)句之間用斷點(diǎn)中止程序,你可以對(duì)任何變量重新賦值,或者在函數(shù)體內(nèi)把程序計(jì)數(shù)器指到其他語(yǔ)句,以及從源程序中 精確地獲取你期待的結(jié)果.
不使用`-O’選項(xiàng)時(shí),只有聲明了register的變量才分配使用寄存器.編譯結(jié)果比不用 `-O’選項(xiàng)的PCC要略遜一籌.
使用了`-O’選項(xiàng),編譯器會(huì)試圖減少目標(biāo)碼的大小和執(zhí)行時(shí)間.
如 果指定了`-O’選項(xiàng), `-fthread-jumps’和`-fdefer-pop’選項(xiàng)將被 打開(kāi).在有delay slot的機(jī)器上, `-fdelayed-branch’選項(xiàng)將被打開(kāi).在即使沒(méi)有幀指針 (frame pointer)也支持調(diào)試的機(jī)器上, `-fomit-frame-pointer’選項(xiàng)將被打開(kāi).某些機(jī)器上 還可能會(huì)打開(kāi)其他選項(xiàng).
-O2
多優(yōu)化一些.除了涉及空間和速度交換的優(yōu)化選項(xiàng),執(zhí)行幾乎所有的優(yōu)化工作.例如不進(jìn)行循環(huán)展開(kāi)(loop unrolling)和函數(shù)內(nèi)嵌(inlining).和-O選項(xiàng)比較,這個(gè)選項(xiàng)既增加了編譯時(shí)間,也提高了生成代碼的 運(yùn)行效果.
-O3
優(yōu)化的更多.除了打開(kāi)-O2所做的一切,它還打開(kāi)了-finline-functions選項(xiàng).
-O0
不優(yōu)化.
如果指定了多個(gè)-O選項(xiàng),不管帶不帶數(shù)字,最后一個(gè)選項(xiàng)才是生效的選項(xiàng)。
-mcpu=pentium4 根據(jù)CPU類型優(yōu)化編譯,可以讓你的mysq表現(xiàn)更好!可選項(xiàng)目很多: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 對(duì)于不需要棧指針的函數(shù)就不在寄存器中保存指針,因此可以忽略存儲(chǔ)和檢索地址的代碼,并將寄存器用于普通用途。所有”-O”級(jí)別都打開(kāi)著一選項(xiàng),但僅在調(diào)試器可以不依靠棧指針運(yùn)行時(shí)才有效。建議不需要調(diào)試的情況下顯式的設(shè)置它。
configure的相關(guān)參數(shù):
–prefix=/home/mysql/ 指定安裝目錄
–without-debug 去除debug模式
–with-extra-charsets=gbk,gb2312,utf8 添加gbk,gb2312,utf8中文字符支持
–with-pthread 強(qiáng)制使用pthread庫(kù)(posix線程庫(kù))
–enable-assembler 使用一些字符函數(shù)的匯編版本
–enable-thread-safe-client 以線程方式編譯客戶端
–with-client-ldflags=-all-static 以純靜態(tài)方式編譯客戶端
–with-mysqld-ldflags=-all-static 以純靜態(tài)方式編譯服務(wù)端
–without-isam 去掉isam表類型支持,現(xiàn)在很少用了,isam表是一種依賴平臺(tái)的表
–without-innodb 去掉innodb表支持,innodb是一種支持事務(wù)處理的表,適合企業(yè)級(jí)應(yīng)用
make
編譯
make install
安裝
cp support-files/my-medium.cnf /etc/my.cnf
將mysql的配置文件copy到/etc目錄下,并更名為my.cnf
/home/mysql下面有5個(gè)my-xxxx.cnf文件
my-small.cnf 最小配置安裝,內(nèi)存<=64M,數(shù)據(jù)數(shù)量最少
my-large.cnf 內(nèi)存=512M
my-medium.cnf 32M<內(nèi)存<64M,或者內(nèi)存有128M,但是數(shù)據(jù)庫(kù)與web服務(wù)器公用內(nèi)存
my-huge.cnf 1G<內(nèi)存<2G,服務(wù)器主要運(yùn)行mysql
my-innodb-heavy-4G.cnf 最大配置安裝,內(nèi)存至少4G
cd /home/mysql
進(jìn)入安裝目錄
bin/mysql_install_db –user=mysql
以mysql用戶的身份建立數(shù)據(jù)表
chown -R root .
將mysql的主目錄(即/home/mysql)的屬主設(shè)為root用戶。這是官方文檔上的命令,但奇怪的是,如果將mysql的主目錄屬主設(shè)成root用戶,在運(yùn)行了下面的bin/mysqld_safe –user=mysql &后則不能啟動(dòng)mysql。問(wèn)題出在“權(quán)限”上,運(yùn)行chown -R mysql .則可以用下面的命令正常啟動(dòng)mysql。難道官方文檔有錯(cuò)?希望大家一起來(lái)探討一下。
chown -R mysql var
將var目錄的屬主設(shè)為mysql用戶
chgrp -R mysql .
將mysql的主目錄的屬主設(shè)為mysql用戶組(注意:和前面的命令不一樣,這個(gè)命令是對(duì)用戶組進(jìn)行賦權(quán))
bin/mysqld_safe –user=mysql &
啟動(dòng)mysql,如果一切正常的話,運(yùn)行此命令后,不會(huì)有任何提示。
bin/mysqladmin -u root password password
修改root用戶的密碼,這里的root用戶指的是mysql的root用戶,與Linux的root用戶無(wú)關(guān)。綠色的password就是你需要設(shè)置的新密碼,牢記!
bin/mysql -u root -p
如果正常的話,用這個(gè)名字可以登錄,在輸入密碼后,出現(xiàn)mysql > 的提示符表明登錄成功。用quit命令可退出
以下命令用于設(shè)置mysql開(kāi)機(jī)自動(dòng)運(yùn)行
cd mysql-VERSION
再次進(jìn)入解壓后的目錄,即源碼目錄。
cp support-files/mysql.server /etc/init.d/mysql
將mysql.server這個(gè)文件copy到/etc/init.d/目錄下,并更名為mysql
chmod 755 /etc/init.d/mysql
給/etc/init.d/mysql這個(gè)文件賦予“執(zhí)行”權(quán)限
chkconfig –level 345 mysql on
加入到開(kāi)機(jī)自動(dòng)運(yùn)行,運(yùn)行級(jí)別為3 4 5
service mysql restart
重啟mysql服務(wù)
Q:為什么我用PHP連接Mysql時(shí)提示“connect fail:Can’t connect to local MySQL server through socket ‘/home/mysql/tmp/mysql.sock‘ (13)”
A: 這是因?yàn)镻HP沒(méi)能正常的連接到Mysql套接字,即mysql.sock文件。首先,檢查/home/mysql/tmp/目錄下是否有 mysql.sock這個(gè)文件。如果沒(méi)有,可能是mysql沒(méi)有正常啟動(dòng);如果有,可能是/home/mysql/tmp/這個(gè)目錄的權(quán)限不夠,用chmod 755 /home/mysql/tmp可解決此問(wèn)題。
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|