方法/步驟
1
在安裝mysql資料庫伺服器前,確保你的linux系統是可以連接網路的,下面我們將通過源碼方式來安裝mysql首先通過putty登入進你的Linux系統,確保系統中已經安裝的gcc c++ 等編譯環境,因為mysql從5.5版本開始是使用cmake編譯的,如果三個環境都沒安裝,可以使用下面的命令進行安裝:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2
查找系統里是否已經安裝了mysql資料庫的相關組件,使用命令:rpm -qa | grep mysql 進行查找,如果查找到,可以使用下面命令進行強制卸載:rpm -e --nodeps 包名
如果你當時在安裝Linux系統時,使用的默認的安裝選項,這一步可以跳過;
2. 編譯好的mysql可以直接異機使用么
首先你要分清楚,JAVA和mysql的關系。JAVA和mysql之間除了在代碼上有連接外,JAVA本身並沒有會包含mysql,所以說只你的代碼編譯完成後,如果軟體有帶mysql,能連接沒問題就可以。
關於寫插件,你要分清楚你要括展的軟體是否支持插件括展,像eclipse就是典型的支支插件括展的軟體。
總結來說,你要給軟體寫插件,你連要給寫插件的軟體有沒有資料庫都搞不清楚怎麼玩。有資料庫你也得有帳號密碼能連得上。
3. mysql為什麼改用cmake編譯
通過頁面底部的按鈕,我們可以創建更多資料庫,刪除現有資料庫,或更改現有資料庫的配置。例如在選中一個現有資料庫,並點擊底部的「編輯」按鈕後,即可修改可訪問該資料庫的用戶帳戶的訪問許可權。
4. mysql現在都是不用編譯安裝的了
綠色版的下載可以直接用
5. linux下c語言操作MYSQL編譯報錯
#include<mysql/mysql.h>
#include<stdio.h>
#include<stdlib.h>
#define HOST "localhost"
#define USERNAME "用戶名"
#define PASSWORD "密碼"
#define DATABASE "指定的資料庫"
#define SQL_QUERY "SELECT*FROM表名"
intmain(void)
{
MYSQLmysql;
MYSQL_ROWrow;
MYSQL_RES*result;
unsignedintnum_fields;
unsignedinti;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,HOST,USERNAME,PASSWORD,DATABASE,0,NULL,0))
{
printf("Connectionfailed,%s ",mysql_error(&mysql));
}
mysql_query(&mysql,"setnamesutf8");
if(!mysql_query(&mysql,SQL_QUERY))
{
result=mysql_store_result(&mysql);
if(!result)
{
perror("resulterror.");
exit(1);
}
num_fields=mysql_num_fields(result);
while(row=mysql_fetch_row(result))
{
for(i=0;i<num_fields;i++)
{
printf("%s ",row[i]);
}
printf(" ");
}
mysql_free_result(result);
}
mysql_close(&mysql);
return0;
}
編譯命令:
gcc -o mysql_test mysql_test.c -lmysqlclient
運行命令:
./mysql_test
6. mysql為什麼要用cmake編譯
設置LINUX自動匹配環境變數
1.$su #su進入root
#vi /etc/profile
在文件末尾加上下列語句:
PATH=$PATH:/sbin #在PATH變數後追加/sbin目錄
export PATH=$PATH:/sbin #設置變數為全局的
保存並退出。
退出root並在終端運行
$source /etc/profile #該命令的作用是重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登好了在終端中輸入ifconfig 創建用戶和組
groupadd mysql // 建一個msyql的用戶和組
useradd -g mysql mysql -s /usr/sbin/nologin
mkdir /usr/local/mysql // 創建目錄
mkdir /usr/local/mysql/data // 數據倉庫目錄
安裝mysql
tar -zxvf mysql-5.5.14.tar.gz
cd mysql-5.5.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
PS: cmake的時候,參數可以不用那麼多,只要一個-DCMAKE_INSTALL_PREFIX=/usr/local/mysql就行了,我們可以在 my.cnf裡面配置。[mysqld]中的內容,看看你後的my.cnf有沒有這些設置,有就不用了在設置了。
make && make install
如果需要更改配置,則:
make clean
rm -f CMakeCache.txt
復制配置文件
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
設置許可權
chmod +x /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
配置開機自啟動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --list
//update-rc.d mysql defaults (/sbin/chkconfig --add mysql ; /sbin/chkconfig mysql on)
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
修改my.cnf配置
gedit /usr/local/mysql/my.cnf
[mysqld] 添加:
datadir=/usr/local/mysql/data
default-storage-engine=MyISAM
以下可選:
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/mysql.pid
user = mysql
tmpdir = /tmp
安裝默認數據表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
啟動MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
最後的「&」表示在後台運行,或者使用 /etc/init.d/mysql start (service mysql start)啟動
設置MYSQL命令行路徑
mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,系統在/usr/bin下面查此命令
解決辦法是: ln -s /usr/local/mysql/bin/mysql /usr/bin
測試MySQL是否啟動
1)查看是否有進程mysql
ps -ef | grep mysql
2)查看埠是否運行
netstat -tnl | grep 3306
3)讀取mysql版本信息
/usr/local/mysql/bin/mysqladmin version
至此,MySQL安裝完成。
三、錯誤解決
1.libstdc++.so依賴問題:使用命令yum install gcc
7. 如何編譯 mysql的存儲過程
簡單的說,就是一組SQL語句集,功能強大,可以實現一些比較復雜的邏輯功能,類似於JAVA語言中的方法;
ps:存儲過程跟觸發器有點類似,都是一組SQL集,但是存儲過程是主動調用的,且功能比觸發器更加強大,觸發器是某件事觸發後自動調用;
8. 如何在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
9. 如何使用自己編譯的Mysql文件
建議你到csdn論壇去發帖,這里大部分都是搜索,復制,和粘貼高手。