- 1、有一個php mysql的源碼,該怎麼在本地配置?
- 2、如何在linux下安裝mysql資料庫並配置
- 3、如何配置全世界最小的 MySQL 伺服器
本地先需要架設PHP+MYSQL的伺服器,然後根據提示安裝代碼。
一般有倆種安裝方式
一種非常簡單,直接把代碼複製到PHP+MYSQL的伺服器的根目錄。按照提示訪問,一直確定就行
一種相對複雜點,把代碼複製到PHP+MYSQL的伺服器的根目錄。然後根據提示找到資料庫連接文件,用網頁編程工具把資料庫改成你的,這個先要在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的鏡像站點查找你指明的軟體的最新二進位包,並檢查軟體包依賴關係,安裝軟體的同時自動安裝其依賴的軟體包。
3.2.3 從mysql網站下載最新穩定版本的二進位包安裝
通過CentOS安裝媒體或yum安裝的二進位包版本會落後於mysql開發者網站發布的版本,可以從mysql網站下載安裝最新穩定版本的mysql。
訪問MySQL網站下載最新穩定發行版的相應硬體平台的MySQL。本文使用的是Red Hat Enterprise Linux 5 RPM (x86) 5.0.45版本。需要下載Server、Client、Headers and Libraries、Share Libraries/Shared compatibility libraries幾個rpm包,其它為可選包,按需要選擇。
在linux系統下用下面的命令下載:
wget
wget
wget
wget
wget
執行下面的命令安裝:
rpm -iUvh MySQL-server-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-client-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
4. MySQL的配置
4.1 目錄結構
4.1.1 源碼包方式安裝目錄結構
源碼包方式安裝時通常是在3.1.4節中configure命令的–prefix選項指定的目錄中建立如下的目錄結構,特殊指定的目錄除外:
./bin #mysql用戶可執行文件目錄
./include/mysql #mysql C頭文件目錄
./info #mysql 信息文件目錄
./lib/mysql #mysql庫文件目錄
./libexec #mysql後台daemon程序目錄
./man #mysql聯機幫助文檔目錄
./mysql-test #mysql測試程序目錄
./share/mysql #mysql公用文件目錄,包括字符集、配置文件模板、啟動腳本、初始化SQL文件等
./sql-bench #mysql壓力測試程序目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.1.2 RPM二進位包方式安裝目錄結構
二進位包方式安裝時使用系統軟體默認目錄結構 :
/usr/bin #mysql用戶可執行文件目錄
/usr/libexec #mysql後台daemon程序目錄
/usr/lib/mysql #mysql庫文件目錄
/usr/lib64/mysql #如果為64系統,mysql 64位庫文件目錄
/usr/share/doc #mysql文檔目錄
/usr/share/info #mysql信息文件目錄
/usr/share/man #mysql聯機幫助文檔目錄
/usr/share/mysql #mysql字符集目錄
/usr/include/mysql #mysql C頭文件目錄
/var/log #mysqld服務日誌文件目錄
/var/run/mysqld #mysqld服務運行狀態目錄
/var/lib/mysql #mysql數據文件目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.2 配置文件
Linux系統下,mysql的配置參數文件為my.cnf,一般按下面的順序查找此文件:/etc目錄、mysql安裝目錄、mysql數據目錄。配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔。
4.3 啟動mysqld服務
執行下面的命令啟動mysql:
service mysqld start
4.3 設置mysql帳號
mysql安裝後默認生成兩個帳號:一個是root,未設置密碼,可以從本機登錄到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登錄,未提供用戶名的連接都將假定為此帳號。這樣的設置存在著安全隱患,按下面的步驟進行更改。
以root帳號連接到mysql伺服器:
mysql -u root
如果提示找不到mysql文件,請嘗試使用絕對路徑,如本文示例為:
/usr/local/mysql/bin/mysql -u root
命令成功執行後將進入到mysql命令提示符下:
mysql
(以下命令均在mysql命令提示符下執行)
改變當前資料庫為mysql:
use mysql
設置從本地主機登錄的root帳號密碼:
set password for root@localhost=password(‘your password’);
或:
update user set password=password(‘your password’) where user=’root’ and host=’localhost’;
刪除匿名帳號:
delete from user where user=” ;
刪除密碼為空的帳號:
delete from user where password=”;
刪除允許非localhost主機登錄的帳號:
delete from user where host’localhost’ ;
執行下面的命令使更改生效:
flush privileges ;
執行下面的命令退出mysql命令行:
quit
或:
/q
5. 結束語
至此,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
原創文章,作者:LURDZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126667.html