如何配置全世界最小的 MySQL 服務(wù)器
配置全世界最小的 MySQL 服務(wù)器——如何在一塊 Intel Edison 為控制板上安裝一個(gè) MySQL 服務(wù)器。
介紹
在我最近的一篇博文中,物聯(lián)網(wǎng),消息以及 MySQL,我展示了如果Particle Photon 的板子開始構(gòu)建你自己的物聯(lián)網(wǎng)。那個(gè)實(shí)現(xiàn)很棒,不過(guò)因?yàn)?Particle Photon 板子沒(méi)有任何本地的存儲(chǔ),所以需要穩(wěn)定的互聯(lián)網(wǎng)(wi-fi)接入。如果你沒(méi)有一個(gè)可靠的網(wǎng)絡(luò)訪問(wèn) (例如在一些邊遠(yuǎn)的地方) 或者需要某些很小的東西來(lái)存儲(chǔ)數(shù)據(jù),現(xiàn)在就可以使用Intel Edison了。我甚至在Edison 安裝過(guò) MySQL,這使其成為了世界上(在體積上)最小的 MySQL 服務(wù)器! 其它的選擇包括:
Raspberry Pi(我的大學(xué)同學(xué)在 Raspberry PI 上面安裝了 Percona 服務(wù)端)
基于 Android 的系統(tǒng) (例如 Nexus 7: Vadim 在 Nexus 7 上安裝了 Percona 服務(wù)端)
MySQL 配置
Intel Edison是一個(gè)小巧的計(jì)算機(jī),基于 22 nm 的 Silvermont 雙核 Intel Atom CPU, 主頻 500MHz,運(yùn)行 Linux (叫做 Yocto 的基于 Ubuntu 的發(fā)布版)。為了對(duì) Edison 進(jìn)行編程,我們需要一塊接口板??梢赃x擇的板子包括兼容 Arduino 的接口板 (包含了 SD 卡) 還有 Intel 接口板。
安裝和配置是直觀的。我使用了在 Intel Edison 板子上開啟 Yocto 項(xiàng)目的指南來(lái)對(duì)板子進(jìn)行安裝和配置。首先我們需要通過(guò)串口來(lái)連接 Edison,并對(duì) sshd 和 Wi-Fi 進(jìn)行配置;完成后我們就可以使用 SSH 連接到 Edison 了。
因?yàn)?Linux 通用的二進(jìn)制文件是兼容 Yocto Linux 的(因而你無(wú)需編譯任何東西),所以 MySQL 的安裝相對(duì)比較簡(jiǎn)單. 有兩個(gè)坑:
Yocto linux (還有官方的資源庫(kù)) 默認(rèn)并沒(méi)有包含 MySQL 所需要的庫(kù): libaio1, libcrypto, libssl
內(nèi)部存儲(chǔ)比較小,而 MySQL 5.7 二進(jìn)制文件不適合放到任何分區(qū)。我必須刪除一些 “tests”以及其它我并不需要的東西。真正安裝的時(shí)候可以使用 SD 卡 (SD 插敘在一些板子上是有的)。
為了安裝庫(kù)文件,我遵照這份優(yōu)秀的指南:Edison 包 repo 配置,使用了非官方的 Edison 資源庫(kù)。設(shè)置很簡(jiǎn)單:
要配置你的 Edison 從這個(gè) repo 獲取包,請(qǐng)用下面這些東西替換掉 /etc/opkg/base-feeds.conf 中的東西(其它 opkg 配置文件不需要改變):
src/gzallhttp://repo.opkg.net/edison/repo/allsrc/gzedisonhttp://repo.opkg.net/edison/repo/edisonsrc/gzcore2-32http://repo.opkg.net/edison/repo/core2-32[/code]
之后我們需要對(duì)庫(kù)進(jìn)行安裝:
#opkginstalllibaio1_0.3libcrypto1.0.0libssl1.0.0[/code]
最后我們可以下載 Percona Server 5.6 并將其放到某個(gè)地方 (使用 my.cnf 中的 basedir 指向安裝路徑):
#wgethttps://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-5.6.25-73.1/binary/tarball/Percona-Server-5.6.25-rel73.1-Linux.i686.ssl100.tar.gz[/code]
請(qǐng)注意最新的 Percona Server 5.6 依賴于 Numa 庫(kù),而對(duì)于 Yocto 沒(méi)有這樣的庫(kù) (對(duì) Edison不影響)。因此 5.6.25 是你可以在這里安裝的最新的 Percona 服務(wù)端。
下面在 Intel Edison 上所進(jìn)行的簡(jiǎn)單(并且相當(dāng)無(wú)用 )的基準(zhǔn)測(cè)試:
root@edison:/usr/local/mysql#cat/proc/cpuinfoprocessor:0vendor_id:GenuineIntelcpufamily:6model:74modelname:GenuineIntel(R)CPU4000@500MHz...mysql>SELECTBENCHMARK(10000000,ENCODE('hello','goodbye'));+-----------------------------------------------+|BENCHMARK(10000000,ENCODE('hello','goodbye'))|+-----------------------------------------------+|0|+-----------------------------------------------+1rowinset(18.77sec)[/code]
MySQL 可以為你烤面包嗎?
著名的 MySQL Bug#2, 提交于 2002 年 9 月12 號(hào),并說(shuō)明“MySQL Connector/J 并不能烤面包”。使用 Intel Edison 和 Arduino 兼容的接口板現(xiàn)在就可以修復(fù)這個(gè) bug 了: 現(xiàn)在不僅 MySQL Connector/J , MySQL 服務(wù)端本身也可以為你烤面包了 ! 這可以借助于 UDF,或者在 MySQL 5.7中使用Query Rewrite 插件,因此你可以執(zhí)行MySQL 查詢:
mysql>maketoast;[/code]
對(duì)于實(shí)際的實(shí)現(xiàn),你既可以”黑“掉一個(gè)手頭的烤面包機(jī)來(lái)接入接口板的針腳,或者使用兼容 Arduino 的Robotic Arm。好了, MySQL,為我烤面包吧!

相關(guān)文章
mysql錯(cuò)誤處理之ERROR 1786 (HY000)
最近一直在mysql的各個(gè)版本直接徘徊,這中間遇到了各種各樣的錯(cuò)誤,將已經(jīng)處理完畢的幾個(gè)錯(cuò)誤整理了一下,分享給大家,首先我們來(lái)看看錯(cuò)誤提示 ERROR 1786 (HY000)2014-07-07
簡(jiǎn)述MySQL分片中快速數(shù)據(jù)遷移
這篇文章主要介紹了MySQL分片中快速數(shù)據(jù)遷移的相關(guān)資料,需要的朋友可以參考下2016-03-03
MySQL之修改數(shù)據(jù)表存儲(chǔ)引擎的三種方式
這篇文章主要介紹了MySQL之修改數(shù)據(jù)表存儲(chǔ)引擎的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
經(jīng)測(cè)試最好用的mysql密碼忘記的解決方法
經(jīng)測(cè)試最好用的mysql密碼忘記的解決方法...2007-06-06
MYSQL優(yōu)化之?dāng)?shù)據(jù)表碎片整理詳解
在日常的數(shù)據(jù)庫(kù)維護(hù)中,在給客戶制定維護(hù)方案時(shí),都會(huì)有降低高水位此類的建議 建議每年年終定期做數(shù)據(jù)整理,下面這篇文章主要給大家介紹了關(guān)于MYSQL優(yōu)化之?dāng)?shù)據(jù)表碎片整理的相關(guān)資料,需要的朋友可以參考下2022-04-04

