當前位置:首頁 » 編程軟體 » 查看mysql編譯參數

查看mysql編譯參數

發布時間: 2022-12-26 03:24:30

⑴ 如何在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安裝,源地址在這里http://mirror.centos.org/centos/7/sclo/x86_64/rh

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

⑵ MySQL cmake編譯時這些參數是什麼意思

MySQL cMake 常規參數介紹

-DCMAKE_INSTALL_PREFIX= 指向mysql安裝目錄
-DINSTALL_SBINDIR=sbin 指向可執行文件目錄(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql數據文件目錄(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目錄(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目錄(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man 指向man文檔目錄(prefix/share/man)
-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安裝目錄(prefix/share)
-DINSTALL_LIBDIR=lib/mysql 指向對象代碼庫目錄(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql 指向頭文件目錄(prefix/include/mysql)
-DINSTALL_INFODIR=share/info 指向info文檔存放目錄(prefix/share/info)
prefix官方推薦設為/usr
類型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想啟用某個引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某個引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DWITH_READLINE=1 啟用readline庫支持(提供可編輯的命令行)
-DWITH_SSL=system 啟用ssl庫支持(安全套接層)
-DWITH_ZLIB=system 啟用libz庫支持(zib、gzib相關)
-DWTIH_LIBWRAP=0 禁用libwrap庫(實現了通用TCP包裝的功能,為網路服務守護進程使用)
-DMYSQL_TCP_PORT=3306 指定TCP埠為3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路徑
-DENABLED_LOCAL_INFILE=1 啟用本地數據導入支持
-DEXTRA_CHARSETS=all 啟用額外的字元集類型(默認為all)
-DDEFAULT_CHARSET=utf8 指定默認的字元集為utf8
-DDEFAULT_COLLATION=utf8_general_ci 設定默認排序規則(utf8_general_ci快速/utf8_unicode_ci准確)
-DWITH_EMBEDDED_SERVER=1 編譯嵌入式伺服器支持
-DMYSQL_USER=mysql 指定mysql用戶(默認為mysql)
-DWITH_DEBUG=0 禁用debug(默認為禁用)
-DENABLE_PROFILING=0 禁用Profiling分析(默認為開啟)
-DWITH_COMMENT='string' 一個關於編譯環境的描述性注釋

⑶ cmake mysql時怎麼去查看所需要添加編譯的參數

cmake . -LH 「.」表示編譯當前目錄,-LH編譯完後列印出選項

⑷ 如何在makefile中增加mysql編譯參數

用QT Creator生成的文件進行編譯時出現錯誤,網上查找說是要修改生成的Makefile文件,在CFLAGS和CXXFLAGS中添加「-fno-rtti」編譯參數。這樣每個Makefile文件都要修改,很麻煩。那麼能不能在生成Makefile時自動加上呢。可以,只需要修改qmake的配置即可!

以下為解決方法(也可供同類問題參考):

1、#sudo gedit Makefile 查看生成的Makefile。在其中找到Makefile: mycom.pro /QT4/builddir/sdk/qtopiacore/target/mkspecs/qws/linux-arm-g++/qmake.conf 。

這就是要修改的配置文件

2、#sudo gedit /QT4/builddir/sdk/qtopiacore/target/mkspecs/qws/linux-arm-g++/qmake.conf

找到要修改的項並修改QMAKE_CFLAGS = -fno-rtti -pipe,QMAKE_CXXFLAGS = $$QMAKE_CFLAGS(說明引用QMAKE_CFLAGS)

那麼這就完成修改。保存退出即可。

⑸ 如何查看mysql可用編譯參數

如何查看mysql可用編譯參數
查看nginx編譯參數:/usr/local/nginx/sbin/nginx -V查看apache編譯參數:cat /usr/local/apache2/build/config.nice查看mysql編譯參數:cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE查看php編譯參數:/usr/local/php/bin/php -i | grep configure

⑹ 怎麼查看編譯mysql時使用了那些參數

查看nginx編譯參數:/usr/local/nginx/sbin/nginx -V查看apache編譯參數:cat /usr/local/apache2/build/config.nice查看mysql編譯參數:cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE查看php編譯參數:/usr/local/php/bin/php -i | grep configure會有更專業的人來為您解答。如果我的回答沒能幫助您,請繼續追問。

⑺ 什麼參數可以查看mysql主從復制是否正常

用 pt-table-checksum 時,會不會影響業務性能?

實驗


實驗開始前,給大家分享一個小經驗:任何性能評估,不要相信別人的評測結果,要在自己的環境上測試,並(大概)知曉原理。

我們先建一對主從:

之後工具獲取了一個數據塊的 checksum,這個數據塊不大,如果跟業務流量有沖突,會馬上出發 innodb 的鎖超時,立刻退讓。

以上是 pt-table-checksum 的一些設計,可以看到這幾處都是精心維護了業務流量不受影響。

工具還設計了其他的一些機制保障業務流量,比如參數 --max-load 和 --pause-file 等,還有精心設計的數據塊劃分方法,索引選擇方法等。大家根據自己的情況配合使用即可達到很好的效果。

總結

本期我們介紹了簡單分析 pt-table-checksum 是否會影響業務流量,坊間會流傳工具的各種參數建議或者不建議使用,算命的情況比較多,大家都可以用簡單的實驗來分析其中機制。

還是那個觀點,性能測試不能相信道聽途說,得通過實驗去分析。

⑻ 小內存編譯安裝mysql要加什麼參數

MySQL內存參數配置推薦:https://tools.percona.com/wizard
1.慢查詢日誌:
slow_launch_time=2 查詢大於某個時間的值(單位:s)
slow_query_log=on/off 開啟關閉慢查詢日誌
slow_query_log_file=/opt/data/host-slow.log 慢查詢日誌位置

2.連接數:
max_connections MySQL最大連接數
back_log 當連接數滿了後,設置一個值,允許多少個連接進入等待堆棧
max_connect_errors 賬號連接到伺服器允許的錯誤次數
connect_timeout 一個連接報文的最大時間(單位:s)
skip-name-resolve 加入my.cnf即可,MySQL在收到連接請求的時候,會根據請求包
中獲得的ip來反向追查請求者的主機名。然後再根據返回
的主機名又一次去獲取ip。如果兩次獲得的ip相同,那麼連接就成功建立了。
加了次參數,即可省去這個步驟
NOTES:
查詢當前連接數:show global status like 'connections';

3.key_buffer_size 索引緩存大小,是對MyISAM表性能影響最大的一個參數
32bit平台上,此值不要超過2GB,64bit平台不用做此限制,但也不要超過4GB
根據3點計算:
a.系統索引總大小
b.系統物理內存
c.系統當前keycache命中率
粗略計算公式:
Key_Size =key_number*(key_length+4)/0.67
Max_key_buffer_size
Threads_Usage = max_connections * (sort_buffer_size + join_buffer_size +
read_buffer_size+read_rnd_buffer_size+thread_stack)

key_cache_block_size ,是key_buffer緩存塊的單位長度,以位元組為單位,默認值為1024。
key_cache_division_limit 控制著緩存塊重用演算法。默認值為100,此值為key_buffer_size中暖鏈所佔的大小百分比(其中有暖鏈和熱鏈),100意味著全是暖鏈。(類似於Oracle Data Buffer Cache中的default、keep、recycle)
key_cache_age_threshold 如果key_buffer里的熱鏈里的某個緩存塊在這個變數所設定的時間里沒有被訪問過,MySQL伺服器就會把它調整到暖鏈里去。這個參數值越大,緩存塊在熱鏈里停留的時間就越長。
這個參數默認值為 300,最小值為100。
Myisam索引默認是緩存在原始key_buffer中的,我們可以手動創建新的key_buffer,如在my.cnf中加入參數new_cache.key_buffer_size=20M。指定將table1和table2的索引緩存到new_cache的key_buffer中:
cache index table1,table2 in new_cache;
(之前默認的key_buffer為default,現在手動創建的為new_cache)
手動將table1和table2的索引載入到key_buffer中:
load index into cache table1,table2;

系統中記錄的與Key Cache相關的性能狀態參數變數: global status
◆Key_blocks_not_flushed,已經更改但還未刷新到磁碟的DirtyCacheBlock;
◆Key_blocks_unused,目前未被使用的CacheBlock數目;
◆Key_blocks_used,已經使用了的CacheBlock數目;
◆Key_read_requests,CacheBlock被請求讀取的總次數;
◆Key_reads,在CacheBlock中找不到需要讀取的Key信息後到「.MYI」文件中(磁碟)讀取的次數;
◆Key_write_requests,CacheBlock被請求修改的總次數;
◆Key_writes,在CacheBlock中找不到需要修改的Key信息後到「.MYI」文件中讀入再修改的次數;
索引命中緩存率:
key_buffer_read_hits=(1-Key_reads/Key_read_requests)*100%
key_buffer_write_hits=(1-Key_writes/Key_write_requests)*100%
該命中率就代表了MyISAM類型表的索引的cache

4.臨時表 tmp_table_size (用於排序)
show global status like 『created_tmp%』;
| Variable_name | Value |
| Created_tmp_disk_tables | 21197 | #在磁碟上創建臨時表的次數
| Created_tmp_files | 58 | #在磁碟上創建臨時文件的次數
| Created_tmp_tables | 1771587 | #使用臨時表的總次數
TmpTable的狀況主要是用於監控MySQL使用臨時表的量是否過多,
是否有臨時表過大而不得不從內存中換出到磁碟文件上。
a.如果:
Created_tmp_disk_tables/Created_tmp_tables>10%,則需調大tmp_table_size
比較理想的配置是:
Created_tmp_disk_tables/Created_tmp_tables<=25%
b.如果:
Created_tmp_tables非常大 ,則可能是系統中排序操作過多,或者是表連接方式不是很優化。

相關參數:
tmp_table_size 內存中,臨時表區域總大小
max_heap_table_size 內存中,單個臨時表的最大值,超過的部分會放到硬碟上。

5.table cache相關優化 :
參數table_open_cache,將表的文件描述符打開,cache在內存中
global status:
open_tables 當前系統中打開的文件描述符的數量
opened_tables 系統打開過的文件描述符的數量

如果:
Opened_tables數量過大,說明配置中table_open_cache值可能太小

比較合適的值為:
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_open_cache * 100% <= 95%

6.進程的使用情況
在MySQL中,為了盡可能提高客戶端請求創建連接這個過程的性能,實現了一個ThreadCache池,
將空閑的連接線程存放在其中,而不是完成請求後就銷毀。這樣,當有新的連接請求的時候,
MySQL首先會檢查ThreadCache池中是否存在空閑連接線程,如果存在則取出來直接使用,
如果沒有空閑連接線程,才創建新的連接線程。

參數:thread_cache_size
thread cache 池中存放的最大連接數
調整參考:
在短連接的資料庫應用中,資料庫連接的創建和銷毀是非常頻繁的,
如果每次都需要讓MySQL新建和銷毀相應的連接線程,那麼這個資源消耗實際上是非常大的,因此
thread_cache_size的值應該設置的相對大一些,不應該小於應用系統對資料庫的實際並發請求數。

參數:thread_stack - 每個連接線程被創建的時候,MySQL給他分配的內存大小,
類似PGA中存放數據的內存部分(不包括排序的空間)

show status like 'connections';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections | 80 | #接受到的來自客戶端的總連接數,包括以前和現在的連接。
+---------------+-------+
show status like 'thread%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 | #當前系統中,緩存的連接數
| Threads_connected | 1 | #當前系統中正連接的線程數
| Threads_created | 77 | #創建過的匯流排程數
| Threads_running | 1 |
+-------------------+-------+
a.如果:
Threads_created 值過大,說明MySQL一直在創建線程,這是比較消耗資源的,應該適當增大
thread_cache_size的值
b.如果:
Threads_cached的值比參數thread_cache_size小太多,則可以適當減小thread_cache_size的值

ThreadCache命中率:
Threads_Cache_Hit=(Connections-Threads_created)/Connections*100%
一般來說,當系統穩定運行一段時間之後,我們的ThreadCache命中率應該保持在90%
左右甚至更高的比率才算正常。

7.查詢緩存(Query Cache) -- optional
將客戶端的SQL語句(僅限select語句)通過hash計算,放在hash鏈表中,同時將該SQL的結果集
放在內存中cache。該hash鏈表中,存放了結果集的內存地址以及所涉及到的所有Table等信息。
如果與該結果集相關的任何一個表的相關信息發生變化後(包擴:數據、索引、表結構等),
就會導致結果集失效,釋放與該結果集相關的所有資源,以便後面其他SQL能夠使用。
當客戶端有select SQL進入,先計算hash值,如果有相同的,就會直接將結果集返回。

Query Cache的負面影響:
a.使用了Query Cache後,每條select SQL都要進行hash計算,然後查找結果集。對於大量SQL
訪問,會消耗過多額外的CPU。
b.如果表變更比較頻繁,則會造成結果集失效率非常高。
c.結果集中保存的是整個結果,可能存在一條記錄被多次cache的情況,這樣會造成內存資源的
過度消耗。

Query Cache的正確使用:
a.根據表的變更情況來選擇是否使用Query Cache,可使用SQL Hint:SQL_NO_CACHE和SQL_CACHE
b.對於 變更比較少 或 數據基本處於靜態 的表,使用SQL_CACHE
c.對於結果集比較大的,使用Query Cache可能造成內存不足,或擠占內存。
可使用1.SQL_NO_CACHE 2.query_cache_limit控制Query Cache的最大結果集(系統默認1M)

mysql> show variables like '%query_cache%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES | #是否支持Query Cache
| query_cache_limit | 1048576 | #單個結果集的最大值,默認1M
| query_cache_min_res_unit | 4096 | #每個結果集存放的最小內存,默認4K
| query_cache_size | 0 | #Query Cache總內存大小,必須是1024的整數倍
| query_cache_type | ON | #ON,OFF,DEMAND(包含SQL_CACHE的查詢中才開啟)
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
#query_cache_wlock_invalidate:
針對於MyISAM存儲引擎,設置當有WRITELOCK在某個Table上面的時候,
讀請求是要等待WRITE LOCK釋放資源之後再查詢還是允許直接從QueryCache中讀取結果,
默認為FALSE(可以直接從QueryCache中取得結果)

此為部分內容,附上原文出處:http://blog.itpub.net/26355921/viewspace-769393/

⑼ 什麼參數可以查看mysql主從復制是否正常

主要是查看從機,show
slave
status
\G
這個是查看從機復制狀態,裡面的參數很多,你要留意
Slave_IO_Running:
Slave_SQL_Running:
這兩個參數的狀態,正常是YES,如果是no,那麼主從復制肯定是有問題的
第一個參數是復制主庫的binlog文件的線程,第二個是執行復制過來的binlog二進制文件,可以理解為編譯成sql,並執行。
主機的話你只要查看show
master
status;即可,只要有值,那麼主庫是支持主從復制的,就是說其他從機可以從主機上復制binlog文件

熱點內容
壓縮長抱枕 發布:2025-07-18 16:13:38 瀏覽:503
如何使用wifi熱點配置網路 發布:2025-07-18 16:06:25 瀏覽:968
android軟鍵盤數字 發布:2025-07-18 16:03:18 瀏覽:610
三菱plc編程軟體官網 發布:2025-07-18 15:59:59 瀏覽:436
gse源碼 發布:2025-07-18 15:58:15 瀏覽:626
編譯鏈c語言執行速度 發布:2025-07-18 15:52:51 瀏覽:554
在線編程課程 發布:2025-07-18 15:46:56 瀏覽:172
生兔子演算法循環 發布:2025-07-18 15:44:32 瀏覽:46
背包規劃演算法 發布:2025-07-18 15:44:27 瀏覽:109
微信安卓手機哪裡設置鈴聲 發布:2025-07-18 15:36:54 瀏覽:780