亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

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

添加時間:2015-6-2 21:13:31  添加: 思海網絡 

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

到頁面底部,找到Source downloads,這個是源碼版本,下載第1個Tarball

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可解決此問題。

———————————————————————————————–
Mysql的優化設置

打開/etc/my.cnf文件,修改以下設置,如果沒有,可手動添加。調整設置時,請量力而行,這與你的服務器的配置有關,特別是內存大小。以下設置比較適合于1G-4G內存的服務器,但并不絕對。

# 指定索引緩沖區的大小,它決定索引處理的速度,尤其是索引讀的速度。通過檢查狀態值Key_read_requests和Key_reads,可以知道 key_buffer_size設置是否合理。比例key_reads / key_read_requests應該盡可能的低,至少是1:100,1:1000更好(上述狀態值可以使用show status like ‘key_reads’獲得)。key_buffer_size只對MyISAM表起作用。即使你不使用MyISAM表,但是內部的臨時磁盤表是 MyISAM表,也要使用該值。可以使用檢查狀態值created_tmp_disk_tables得知詳情。 
key_buffer = 384M

# 要求MySQL能有的連接數量。當主要MySQL線程在一個很短時間內得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟 動一個新線程。back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。只有如果期望在一個短時間內有很多連 接,你需要增加它,換句話說,這值對到來的TCP/IP連接的偵聽隊列的大小。你的操作系統在這個隊列大小上有它自己的限制。試圖設定back_log高于你的操作系統的限制將是無效的。默認數值是50
back_log = 200

# 一個包的最大尺寸。消息緩沖區被初始化為net_buffer_length字節,但是可在需要時增加到max_allowed_packet個字節。缺 省地,該值太小必能捕捉大的(可能錯誤)包。如果你正在使用大的BLOB列,你必須增加該值。它應該象你想要使用的最大BLOB的那么大。
max_allowed_packet = 4M

#允許的同時客戶的數量。增加該值增加 mysqld要求的文件描述符的數量。這個數字應該增加,否則,你將經常看到 Too many connections 錯誤。 默認數值是100
max_connections = 1024

# 指定表高速緩存的大小。每當MySQL訪問一個表時,如果在表緩沖區中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容。通過檢查峰值時間的 狀態值Open_tables和Opened_tables,可以決定是否需要增加table_cache的值。如果你發現open_tables等于 table_cache,并且opened_tables在不斷增長,那么你就需要增加table_cache的值了(上述狀態值可以使用show status like ‘Open_tables’獲得)。注意,不能盲目地把table_cache設置成很大的值。如果設置得太高,可能會造成文件描述符不足,從而造成性能 不穩定或者連接失敗。

table_cache = 512

#每個線程排序所需的緩沖
sort_buffer_size = 4M

#當一個查詢不斷地掃描某一個表,MySQL會為它分配一段內存緩沖區。read_buffer_size變量控制這一緩沖區的大小。如果你認為連續掃描進行得太慢,可以通過增加該變量值以及內存緩沖區大小提高其性能。
read_buffer_size = 4M

#加速排序操作后的讀數據,提高讀分類行的速度。如果正對遠遠大于可用內存的表執行GROUP BY或ORDER BY操作,應增加read_rnd_buffer_size的值以加速排序操作后面的行讀取。仍然不明白這個選項的用處……
read_rnd_buffer_size = 8M

#用于REPAIR TABLE。不明白這個選項的用處,百度上找到的設置方向也是五花八門,有128M、64M、32M等,折中選一個。
myisam_sort_buffer_size = 64M

# 可以復用的保存在中的線程的數量。如果有,新的線程從緩存中取得,當斷開連接的時候如果有空間,客戶的線置在緩存中。如果有很多新的線程,為了提高性能可 以這個變量值。通過比較 Connections 和 Threads_created 狀態的變量,可以看到這個變量的作用。
thread_cache_size = 128

#查詢結果緩存。第一次執行某條SELECT語句的時候,服務器記住該查詢的文本內容和它返回的結果。服務器下一次碰到這個語句的時候,它不會再次執行該語句。作為代替,它直接從查詢緩存中的得到結果并把結果返回給客戶端。
query_cache_size = 32M

#最大并發線程數,cpu數量*2
thread_concurrency = 2

#設置超時時間,能避免長連接
wait_timeout = 120

#關閉不需要的表類型,如果你需要,就不要加上這個
skip-innodb
skip-bdb

———————————————————————————————–

Mysql的安全設置

打開/etc/my.cnf文件,修改以下設置,如果沒有,可手動添加。
#取消文件系統的外部鎖
skip-locking

#不進行域名反解析,注意由此帶來的權限/授權問題
skip-name-resolve

#禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。這個命令會利用MySQL把本地文件讀到數據庫中,然后用戶就可以非法獲取敏感信息了。網絡上流傳的一些攻擊方法中就有用它的,它也是很多新發現的SQL Injection攻擊利用的手段!
local-infile = 0

#關閉遠程連接,即3306端口。這是MySQL的默認監聽端口。由于此處MySQL只服務于本地腳本,所以不需要遠程連接。盡管MySQL內建的安全機制很嚴格,但監聽一個TCP端口仍然是危險的行為,因為如果MySQL程序本身有問題,那么未授權的訪問完全可以繞過MySQL的內建安全機制。(你必須確定,你是否真的不需要遠程連接mysql)
skip-networking

修改完my.cnf后,還需要對mysql的用戶名、帳號、及默認數據庫進行調整
首先先登錄mysql,在終端窗口輸入 /home/mysql/bin/mysql -u root -p
然后會提示輸入密碼,輸入正確密碼后,會出現mysql>提示符。

輸入以下命令:
mysql>use mysql;
mysql>update user set user=”centos” where user=”root”; (將mysql的root用戶名修改成centos,防止root的密碼被暴力破解)
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user=”; (刪除user用戶)
mysql>delete from user where password=”; (刪除user用戶)
mysql>delete from user where host=”; (刪除user用戶)
mysql>drop database test; (刪除默認的test數據庫)
mysql>flush privileges; (刷新mysql的緩存,讓以上設置立即生效)

mysql>quit;

為了使以上優化和安全設置生效,請重啟Mysql服務或Linux。

———————————————————————————————–

phpMyAdmin 3.3.x的安裝與配置

phpMyAdmin是一個用PHP編寫的,可以通過互聯網控制和操作MySQL數據庫的軟件。通過phpMyAdmin可以完全對數據庫進行操作,例如建立、復制/刪除數據等等。

下載地址: http://www.phpmyadmin.net
目前的最新版本是 3.3.7
使用phpMyAdmin的先決條件:Apache(或者是Nginx、IIS)、PHP、MySql必須已經安裝好,并且能夠正常運行。因為phpMyAdmin是用PHP程序編寫的,所以,你必須確定你的PHP可以正常連接到MySql。

下面開始安裝:

1、解壓下載到的文件,會得到一個目錄,如 phpMyAdmin-3.3.7-all-languages
tar jxvf phpMyAdmin-3.3.7-all-languages.tar.bz2

2、將這個目錄移動到你的網站根目錄下
mv ./phpMyAdmin-3.3.7-all-languages /var/www/

3、為了安全起見,建議修改目錄名,這樣只有你自己知道phpMyAdmin的所在位置
mv /var/www/phpMyAdmin-3.3.7-all-languages-utf-8-only /var/www/MyphpAdmin

4、修改phpMyAdmin的配置文件
cd /var/www/MyphpAdmin
mv config.sample.inc.php config.inc.php
config.inc.php就是配置文件,需要將config.sample.inc.php更名過來,才能生效。
kate config.inc.php

以$cfg開頭的選項都是可以修改的,根據你的實際情況,參與下面的文檔來修改
$cfg['blowfish_secret'] = ‘http‘; /* cookie認證的加密算法,隨便填一串字符即可 */
$cfg['Servers'][$i]['auth_type'] = ‘cookie‘; /* 登錄時的認證方式。本機登錄的設置成config,網絡遠程登錄的需要設置成cookie */
$cfg['Servers'][$i]['host'] = ‘localhost‘; /* 主機名,可在終端下輸入uname -n查看 */
$cfg['Servers'][$i]['connect_type'] = ‘socket‘; /* 使用tcp(Mysql在遠程服務器上)或socket(Mysql在本機)方式來連接 */
$cfg['Servers'][$i]['compress'] = true; /* 啟用壓縮以提高速度,如果訪問不正常請改回false(php的版本必須高于4.3.0) */
$cfg['Servers'][$i]['extension'] = ‘mysql‘; /* 設定phpMyAdmin所支持的數據庫類型 */
$cfg['Servers'][$i]['controluser'] = ”; /* Mysql的root用戶名,不要填寫 */
$cfg['Servers'][$i]['controlpass'] = ”; /* Mysql的root用戶密碼,不要填寫 */
$cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin‘; /* 包含連接表結構的數據庫名稱。不用修改 */
$cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark‘; /* 從 2.2.0 版本開始,phpMyAdmin 允許將經常使用的查詢存儲在書簽中。不用修改 */
$cfg['Servers'][$i]['relation'] = ‘pma_relation‘; /* 從 2.2.4 版本開始,您可以定義一個關聯表,它的字段是另一個表(外部表)的主鍵。不用修改 */
$cfg['Servers'][$i]['table_info'] = ‘pma_table_info‘; /* 不用修改 */
$cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords‘; /* 不用修改 */
$cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages‘; /* 不用修改 */
$cfg['Servers'][$i]['column_info'] = ‘pma_column_info‘; /* 不用修改 */
$cfg['Servers'][$i]['history'] = ‘pma_history‘; /* 不用修改 */
$cfg['UploadDir'] = ”; /* 不用修改 */
$cfg['SaveDir'] = ”; /* 不用修改 */

5、配置完畢后,就可以在瀏覽器里使用了。
如 http://192.168.0.1/MyphpAdmin/ (注意大小寫要輸入正確,否則會提示找不到頁面)
如果安裝沒有問題的話,就會出現登錄對話框,輸入MySql的帳號和密碼就可以登陸了。

如果在登陸時出現[size=-1]session_start(): Failed to initialize storage module.
請將php.ini文件中如下兩句進行修改
session.save_handler = files
session.save_path = “/tmp” (請確認/tmp目錄的讀寫權限,最好給777權限。)
改成這樣就行了,然后重啟apache。

如果遇到 #2002 – 服務器沒有響應 (or the local MySQL server’s socket is not correctly configured) 這類問題

我 google 了一下,發現很多人被這個問題困擾,大家解決方法的思路都是圍繞 mysql.sock。實際上,通過修改 mysql.sock 路徑解決問題的可能性很小。大部分這類問題是由于 mysql 做了 ip 綁定(bind-address = 127.0.0.1)造成的。這里只需要將 $cfg['Servers'][$i]['host'] = ‘localhost’ 改為 ’127.0.0.1′ 就可以了。或者改成localhost.localdomain。

關鍵字:CentOS、Linux、MySQL、數據庫

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站