mac 编译mysql 源码_Mac上编译MySQL源码与安装
最近遇到好多MySQL相關(guān)的問題,每次從網(wǎng)上查完,總是感覺不透徹。關(guān)鍵還是沒有看源碼。一直想學(xué)習(xí)下MySQL的內(nèi)部實(shí)現(xiàn),總是邁不出這一步。周末閑來無事,打算嘗試一把。先在Mac上編譯一下。這篇文章簡單記錄下過程。
1 源碼下載
直接從github 上下載了源碼。git 地址: github.com/mysql/mysql…
最新的分支是8.0, 由于項(xiàng)目中使用了5.7 ,所以我切換到了5.7 的分支。
git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git branch -r
git checkout 5.7
復(fù)制代碼
2 安裝
官網(wǎng)上有很詳細(xì)的步驟。我簡單來整理下。
2.1 前置安裝
主要有CMake、C++ compiler、SSL、boost、ncurses
官方文檔上有介紹 dev.mysql.com/doc/refman/… 如果Mac上缺乏對應(yīng)的軟件,谷歌下,自己找來安裝即可。
2.2 編譯與安裝
跳轉(zhuǎn)到mysql-server目錄下,為了避免污染源碼,我們需要新建一個bld的文件夾。
cd mysql-server
mkdir bld
cd bld
復(fù)制代碼
接下來就是執(zhí)行CMAKE 了。由于CMAKE 需要依賴boost,所以在CMAKE 時,需要指定boost的路徑。為了避免每次都操作,我再bash_profile 中,增加了alias.
vi ~/.bash_profile
復(fù)制代碼
增加如下alias: 注意boost路徑改成你自己的。
alias cmake="cmake -DWITH_BOOST=/Users/xxxx/cppProject/boost_1_59_0"
復(fù)制代碼
然后source即可。
source ~/.bash_profile
復(fù)制代碼
然后執(zhí)行CMAKE. 加了 -DCMAKE_BUILD_TYPE=Debug 是為了開啟debug模式。
cmake .. -DCMAKE_BUILD_TYPE=Debug
復(fù)制代碼
接下來等一會,執(zhí)行完了之后,會發(fā)現(xiàn)多了一個Makefile 文件。
然后執(zhí)行make即可。
make & make install
復(fù)制代碼
3 初始化與啟動
安裝完了,進(jìn)入初始化環(huán)節(jié)。
3.1 初始化:
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/Users/xxxx/cppProject/mysql-data
復(fù)制代碼
其中:
basedir 是指你的mysql安裝在哪兒了。 (具體需要換成你自己的路徑)
datadir 是指MySQL后續(xù)的數(shù)據(jù)存放在哪兒。(具體需要換成你自己的路徑)
注意: 這兒執(zhí)行完會生成mysql root賬號的密碼,后面在客戶端連接時,5.7版本需要用到,自己別忘了記錄下
類似這種: 其中 B3eJGemen=Wz 就是root的密碼。
[Note] A temporary password is generated for root@localhost: B3eJGemen=Wz
復(fù)制代碼
3.2 啟動
3.2.1 配置
啟動之前,我們需要指定my.cnf 文件,里面有一些基礎(chǔ)配置,啟動時需要。
我自己新建了個配置路徑
mkdir -p /Users/xxx/cppProject/mysql-config
復(fù)制代碼
然后在里面創(chuàng)建my.cnf 文件
cd /Users/xxx/cppProject/mysql-config
vi my.cnf
復(fù)制代碼
my.cnf 內(nèi)容如下:
[mysqld]
port=3307
datadir=/Users/xxx/cppProject/mysql-data
log_error=/Users/xxx/cppProject/mysql-data/error.log
basedir=/usr/local/mysql
socket=/Users/xxx/cppProject/mysql-data/mysql.sock
[client]
socket=/Users/xxx/cppProject/mysql-data/mysql.sock
復(fù)制代碼
配置socket 是因?yàn)镃MAKE操作時沒有指定,導(dǎo)致啟動時會默認(rèn)放在/tmp/mysql.sock.lock 下面,會有權(quán)限問題。自己在my.cnf 指定一下就好。
3.2.2 啟動
mysqld --defaults-file=/Users/xxx/cppProject/mysql-config/my.cnf --user=mysql
復(fù)制代碼
看下對應(yīng)mysqld 啟動起來接口。
ps aux | grep mysqld
復(fù)制代碼
4 客戶端連接
mysql -uroot -P3307 -p
復(fù)制代碼
此時會提示你填入密碼,密碼是上面 3.1 初始化時生成的。
填入之后,然后重置密碼即可。
alter user 'root'@'localhost' identified by '12345678';
復(fù)制代碼
后面就可以愉快地操作。
下一篇開始分析MySQL的啟動過程。自己嘗試改一下源碼debug下。
5 參考文章
《MySQL 運(yùn)維內(nèi)參》
關(guān)于找一找教程網(wǎng)
本站文章僅代表作者觀點(diǎn),不代表本站立場,所有文章非營利性免費(fèi)分享。
本站提供了軟件編程、網(wǎng)站開發(fā)技術(shù)、服務(wù)器運(yùn)維、人工智能等等IT技術(shù)文章,希望廣大程序員努力學(xué)習(xí),讓我們用科技改變世界。
[Mac上編譯MySQL源碼與安裝]http://www.zyiz.net/tech/detail-122492.html
總結(jié)
以上是生活随笔為你收集整理的mac 编译mysql 源码_Mac上编译MySQL源码与安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python os模块
- 下一篇: Mac上搭建IOS自动化测试环境