本文目錄一覽:
- 1、如何搭建php mysql環境
- 2、怎樣快速搭建開發環境 MySQL Cluster
- 3、如何在Windows下編譯或調試MySQL
- 4、Windows下怎樣搭建apache+php+mysql環境
- 5、怎麼搭mysql環境
如何搭建php mysql環境
用php環境安裝包挺簡單的,作為新手可以這樣。
比較好用的有
easyphp
(集成:
Apache,PHP,MySQL,PhpMyAdmin。)
還有appserv
(AppServ
所包含的軟體有:Apache、Apache
Monitor、PHP、MySQL、PHP-Nuke、phpMyAdmin。
PHP
5.0.1
Apache
1.3.31
MySQL
4.0.20
Zend
Optimizer
2.5.3
phpMyAdmin
2.6.0-rc1
Perl
5.8.4)
都是一鍵配置,5分鐘就搭建好了,而且phpmyadmin也配置好了,
其他的一切都搞定。
別的區域網的都可以訪問你的網頁了
怎樣快速搭建開發環境 MySQL Cluster
1. 獲取
這個不必多言吧,到 MySQL 網站上面下載就是了。MySQL Cluster 的英文部署測試手冊很簡明,這裡和其內容基本一樣。喜歡讀英文版的朋友可以直接下載,略過本文。
2. 安裝
先解壓,然後創建一個 symbolic link:
michael@linux:~$ tar xvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar
michael@linux:~$ ln -s mysql-cluster-gpl-7.2.4-linux2.6-x86_64 mysqlc
如果你願意,可以將~/mysqlc/bin加入到你的 path 里,方便使用。
3. 配置
作為在開發環境上第一次部署,還是以測試為主要目的。一個完整的 MySQL Cluster 由 MySQL Server,Data Nodes,Management Node 三部分組成。首先我們為它們創建一些必須的目錄:
michael@linux:~$ mkdir mysql-cluster
michael@linux:~$ cd mysql-cluster
michael@linux:~$ mkdir conf ndb_data mysqld_data
然後在conf目錄下創建如下兩個文件,分別是config.ini和my.cnf,內容如下:
config.ini
用於 MySQL Server 的配置,埠號port根據你自己的情況設定。
[mysqld]
ndbcluster
datadir=/home/user1/my_cluster/mysqld_data
basedir=/home/user1/mysql-cluster
port=5050
my.cnf
該文件用於配置各結點的 NodeId 和 Data Nodes 與 Management Node 的數據目錄。
[ndb_mgmd]
hostname=localhost
datadir=/home/user1/my_cluster/ndb_data
NodeId=1
[ndbd default]
noofreplicas=2
datadir=/home/user1/my_cluster/ndb_data
[ndbd]
hostname=localhost
NodeId=3
[ndbd]
hostname=localhost
NodeId=4
[mysqld]
NodeId=50
這時你的目錄結構應該如下:
~
+– /mysql-cluster-gpl-7.2.4-linux2.6-x86_64
+– /mysqlc – mysql-cluster-gpl-7.2.4-linux2.6-x86_64
+– /mysql-cluster
+– /conf
+– /ndb_data
+– /mysqld_data
4. 運行
MySQL Cluster 的啟動順序是有要求的,如下:
Management Node
Data Nodes
MySQL Server
命令如下:
michael@linux:~$ cd ../mysql-cluster
michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndb_mgmd -f conf/config.ini –initial –configdir=$HOME/mysql-cluster/conf/
michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndbd -c localhost:1186
michael@linux:~/mysql-cluster$ $HOME/mysqlc/bin/ndbd -c localhost:1186
檢查已經啟動的結點的狀態,命令為:
poecahnt@linux:~$ $HOME/mysqlc/bin/ndb_mgm -e show
輸出如下:
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)
id=4 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4)
[mysqld(API)] 1 node(s)
id=50 @127.0.0.1 (mysql-5.5.19 ndb-7.2.4)
表示已經可以啟動 MySQL Server 了。最後啟動 MySQL Server,命令為:
michael@linux:~/mysql-cluseter$ $HOME/mysqlc/bin/mysqld –defaults-file=conf/my.cnf
輸出信息如下:
120223 15:29:02 InnoDB: The InnoDB memory heap is disabled
120223 15:29:02 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120223 15:29:02 InnoDB: Compressed tables use zlib 1.2.3
120223 15:29:02 InnoDB: Using Linux native AIO
120223 15:29:02 InnoDB: Initializing buffer pool, size = 128.0M
120223 15:29:02 InnoDB: Completed initialization of buffer pool
120223 15:29:02 InnoDB: highest supported file format is Barracuda.
120223 15:29:02 InnoDB: Waiting for the background threads to start
120223 15:29:03 InnoDB: 1.1.8 started; log sequence number 1595675
120223 15:29:04 [Note] NDB: NodeID is 50, management server ‘localhost:1186’
120223 15:29:04 [Note] NDB[0]: NodeID: 50, all storage nodes connected
120223 15:29:04 [Warning] NDB: server id set to zero – changes logged to bin log with server id zero will be logged with another server id by slave mysqlds
120223 15:29:04 [Note] Starting Cluster Binlog Thread
120223 15:29:04 [Note] Event Scheduler: Loaded 0 events
120223 15:29:04 [Note] $HOME/mysqlc/bin/mysqld: ready for connections.
Version: ‘5.5.19-ndb-7.2.4-gpl’ socket: ‘/tmp/mysql.sock’ port: 5050 MySQL Cluster Community Server (GPL)
120223 15:29:05 [Note] NDB: Creating mysql.ndb_schema
120223 15:29:08 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_schema
120223 15:29:09 [Note] NDB Binlog: logging ./mysql/ndb_schema (UPDATED,USE_WRITE)
120223 15:29:09 [Note] NDB: Creating mysql.ndb_apply_status
120223 15:29:09 [Note] NDB Binlog: CREATE TABLE Event: REPL$mysql/ndb_apply_status
120223 15:29:09 [Note] NDB Binlog: logging ./mysql/ndb_apply_status (UPDATED,USE_WRITE)
120223 15:29:09 [Note] NDB: missing frm for mysql.ndb_index_stat_sample, discovering…
120223 15:29:09 [Note] NDB: missing frm for mysql.ndb_index_stat_head, discovering…
2012-02-23 15:29:10 [NdbApi] INFO — Flushing incomplete GCI:s 579/14
2012-02-23 15:29:10 [NdbApi] INFO — Flushing incomplete GCI:s 579/14
120223 15:29:10 [Note] NDB Binlog: starting log at epoch 579/14
120223 15:29:10 [Note] NDB Binlog: ndb tables writable
5. 測試
連接 MySQL Server 進行測試,確認可以用ndb存儲引擎來創建資料庫中的表,如下:
michael@linux:~$ $HOME/mysqlc/bin/mysql -h 127.0.0.1 -P 5050
mysql create database clusterdb;
mysql use clusterdb;
mysql insert into simples values (1),(2),(3),(4);
mysql select * from simples;
+—-+
| id |
+—-+
| 3 |
| 1 |
| 2 |
| 4 |
+—-+
6. 停止
MySQL Cluster 必須手動停止,Data Nodes 可以用 ndb_mgm 來停止:
michael@linux:~$ $HOME/mysqlc/bin/mysqladmin -h 127.0.0.1 -P 5050 shutdown
如果提示:
/home/michael/mysqlc/bin/mysqladmin: shutdown failed; error: ‘Access denied; you need (at least one of) the SHUTDOWN privilege(s) for this operation’
則在shutdown命令前加上sudo。
michael@linux:~$ $HOME/mysqlc/bin/ndb_mgm -e shutdown
正常停止的信息類似如下:
120223 16:44:11 [Note] /home/michael/mysqlc/bin/mysqld: Normal shutdown
michael@linux:~/mysql-cluster$ 120223 16:44:11 [Note] Event Scheduler: Purging the queue. 0 events
120223 16:44:13 [Warning] /home/michael/mysqlc/bin/mysqld: Forcing close of thread 2 user: ‘michael’
120223 16:44:13 [Note] Stopping Cluster Utility thread
120223 16:44:13 [Note] Stopping Cluster Index Stats thread
120223 16:44:13 [Note] Stopping Cluster Binlog
120223 16:44:13 [Note] Stopping Cluster Index Statistics thread
120223 16:44:14 InnoDB: Starting shutdown…
120223 16:44:15 InnoDB: Shutdown completed; log sequence number 1595675
120223 16:44:15 [Note] /home/michael/mysqlc/bin/mysqld: Shutdown complete
7. 總結
有序啟動:Management Node,Data Nodes,MySQL Server
配置項與各節點的對應
每個結點都單獨啟動
Management Node 提供狀態查看等多種功能
如何在Windows下編譯或調試MySQL
用vs code 就可以了。
Visual Studio Code
Visual Studio Code(簡稱VS Code)是由微軟開發的,同時支持Windows、Linux和macOS操作系統的開源文本編輯器。它支持調試,內置了Git 版本控制功能,同時也具有開發環境功能,例如代碼補全(類似於IntelliSense)、代碼片段、代碼重構等。該編輯器支持用戶自定義配置,例如改變主題顏色、鍵盤快捷方式、編輯器屬性和其他參數,還支持擴展程序並在編輯器中內置了擴展程序管理的功能。
安裝LLDB
LLDB是LLVM編譯器的一部分,推薦使用Homebrew安裝LLVM工具集,不建議使用系統自帶的LLDB,安裝前必須先創建證書否則無法安裝,步驟如下:
創建完成後,開始安裝LLVM
brew install llvm –with-python@2 –with-lldb
安裝插件
VS Code自帶有debug功能,這裡我推薦使用LLDB Debugger插件。
接下來,為項目配置調試參數。
配置調試參數
使用VS Code打開MySQL源碼目錄,在側邊欄選擇debug欄目,添加配置,program輸入需要調試的程序路徑,這裡選擇你編譯好的mysqld路徑,args輸入程序啟動所需的參數,通常會指定mysqld的配置文件。這樣就配置好了,是不是很簡單。
啟動調試
點擊啟動按鈕,啟動後如果沒有設置斷點會mysqld會正常啟動,如果觸發了斷點會如下圖顯示。
整個調試窗口基本分為六部分,所有的調試操作都在這裡完成:
1: 顯示變數信息
2: 設置重點關注的變數
3: 顯示調用棧信息
4: 設置斷點信息,在代碼行號前也可以設置斷點
5: 代碼顯示區域,上方是調試按鈕,包括 continue/stepover/step in/step out/restart/stop
6: 調試終端輸入輸出區
斷點設置
在代碼行號前點擊即可在該行為設置斷點,也可以根據條件設置斷點。以設置ConditionalBreakpoint為例,當程序啟動後會按照你設置的條件表達式判斷是否觸發斷點。
Conditional Breakpoint這種方式用在目標變數達到某條件時觸發斷點,其餘則跳過繼續執行。比如:設置變數等於目標表名時觸發斷點,其餘表則跳過,相對函數名斷點省去很多手工跳過操作。
遠程調試
假如你想調試遠程Linux伺服器上的MySQL上面的方法就不合適了,這時需要遠程調試。lldb和gdb都支持遠程調試,這裡以lldb為例。
需要先在遠程主機上安裝lldb,使用yum安裝,源地址在這裡
remote$ yum install -y llvm-toolset-7
安裝完成後,啟動lldb-server
remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform –listen “*:9191” –server
接下來,在VS Code調試界面中新增配置項。
{
“type”: “lldb”,
“request”: “attach”,
“name”: “Remote attach”,
“program”: “~/mysql5626/usr/local/mysql/bin/mysqld”,
“pid”:”target_pid”,
“initCommands”: [
“platform select remote-linux”,
“platform connect connect://remote_host:9191”
],
“sourceMap”: {
“/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26”: “/Users/hongbin/workbench/mysql-server”
}
},
program: 本機也要拷貝一份目標程序,載入
pid: 填寫遠程主機的mysqld進程id
sourceMap: 填寫mysqld編譯的代碼路徑與本機代碼庫路徑的映射,這樣調試時代碼才可以和程序關聯在一起看
注意:記得調試前將代碼切換到與目標程序版本一致的branch
Windows下怎樣搭建apache+php+mysql環境
步驟
1
建立文件夾
在D盤(這個盤可以任意選,建議不要建立在C盤)根目錄下新建一個文件,命名為amp,並分別創建apache、php和mysql文件夾
2
開始安裝Apache
Apache的安裝很簡單,直接雙擊httpd-2.2.22-win32-x86-no_ssl.msi軟體,然後一直點擊下一步;
3
填寫基本信息
當出現以下截圖的時候,請填寫站點的基本信息。
4
選擇自定義安裝
5
選擇安裝路徑
6
安裝完成,測試安裝
在瀏覽器輸入,如果出現下圖的界面,說明安裝成功!
END
安裝PHP
解壓php壓縮包,並將解壓好的文件夾「php-5.3.13-Win32-VC9-x86」拷貝到D:/wamp文件夾下,再把文件夾的名字修改成php,即:D:/wamp/php
END
安裝mysql
1
在」D:/wamp」文件夾下新建文件夾mysql,用於安裝mysql
雙擊mysql-5.5.27-win32.msi安裝mysql。
選擇自定義安裝:
選擇安裝目錄:
選擇詳細配置;
選擇安裝類型,這裡我們選擇開發者機器
選擇多功能
埠和模式
選擇字符集
設置環境變數
設置密碼,完成安裝
END
配置Apache,讓Apache啟用PHP模塊
打開D:\wamp\apache\conf文件下面的httpd.conf文件,該文件就是Apache的配置文件,所有與Apache相關的配置都可以在這個文件中完成,當然,也可以配合擴展配置文件D:\wamp\apache\conf\extra下面的各個文件完成。
1、 讓Apache載入PHP模塊:
LoadModule php5_module 「D:/wamp/php/php5apache2_2.dll」
2、 設置哪些文件用PHP來解析:
3種辦法:
一、Addtype application-x/httpd-php .php
二、AddHandler application-x/httpd-php .php
三、FilesMatch \.php$
Sethandler application/x-httpd-php
/FilesMatch
經過以上配置,Apache已經可以載入PHP模塊來解析PHP文件了。但是,別忘了設置最重要的一點PHP初始化文件目錄,PHPIniDir 「E:\wamp\php」,並將E:\wamp\php文件夾下面的php.ini-production或者php.ini-development文件複製一份,並將所複製的文件修改為php.ini,所有關於PHP的配置都將在該文件內進行配置。
END
配置PHP與mysql、實現PHP與mysql通訊
關於php.ini的配置很簡單,記住下面幾點就可以了:
1、 設置擴展dll模塊路徑(PHP才知道去哪兒找要載入的模塊)
extensions_dir= “D:/wamp/php/ext”
2、 設置時區:
Date.timezone=PRC
PRC的意思是people』s pepublic of china
3、 開啟通訊模塊:
例如要開啟PHP與mysql之間的通訊,只需找到 ;extension=php_mysql.dll語句,將前面的;去掉並保存即可。
至此,Apache、PHP與mysql之間已經可以互相調用了。若在配置時出現了錯誤,可在命令行中輸入 httpd.exe –t 來測試語法錯誤。另外一個語法httpd.exe –M 通常用來查看Apache已經載入了的模塊。
怎麼搭mysql環境
這裡以centos65環境為例安裝2個mysql服務包,並啟動mysql服務。
安裝需要軟體包:
rpm -ivh mysql-server* mysql-client*
啟動mysql服務:
service mysql start
註:mysql軟體包的安裝,請以實際下載的軟體為準。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240950.html