mysql調試環境建立(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-hant/n/240950.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:25
下一篇 2024-12-12 12:25

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 如何部署一個服務到一個環境

    本文將從多個方面對如何部署一個服務到一個環境進行詳細的闡述,包括環境準備、代碼編寫、打包部署等。 一、環境準備 1、確定部署環境的操作系統版本、運行時環境(如JDK、Node.js…

    編程 2025-04-29
  • JDK Flux 背壓測試

    本文將從多個方面對 JDK Flux 的背壓測試進行詳細闡述。 一、Flux 背景 Flux 是 JDK 9 對響應式編程的支持。它為響應式編程提供了一種基於推拉模型的方式,以支持…

    編程 2025-04-29
  • Python開發環境包括

    Python作為一門高效、易讀易學的語言,已經被越來越多的開發者使用。而Python的開發環境也發展得越來越完善。本文將會從以下幾個方面對Python開發環境包括做詳細的闡述: 一…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • 內核驅動編譯環境代價分析

    內核驅動編譯環境是在Linux系統中編譯內核模塊的過程。本文通過分析內核驅動編譯環境的各個方面,包括編譯工具的選擇、編譯速度、編譯器選項等,來探討其代價所在,並提供一些優化的建議。…

    編程 2025-04-29
  • 如何使用cmd激活python虛擬環境

    Python虛擬環境是Python用來隔離項目所需包和依賴庫的工具,以免不同項目之間的依賴關係衝突。下面將從安裝虛擬環境、創建虛擬環境、激活虛擬環境這3個方面來詳細講解如何在cmd…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Apache配置Python環境

    Apache是一款流行的Web服務器軟件,事實上,很多時候我們需要在Web服務器上使用Python程序做為數據處理和前端網頁開發語言,這時候,我們就需要在Apache中配置Pyth…

    編程 2025-04-28

發表回復

登錄後才能評論