[Openwrt項目開發筆記]系列文章傳送門:http://www.cnblogs.com/double-win/p/3888399.html
正文:
在本人的項目中,運行在路由器上的服務器采用Nginx+MySQL+PHP 架構。通常較為常見的web框架為Lamp(Linux+Apache+Mysql+PHP),為何我們選擇LNMP呢?我將在后續的幾篇文章中給出答案。
首先我們來介紹如何在Openwrt上搭建MySQL數據庫。
參考文章:(http://blog.csdn.net/yufei_email/article/details/21845935)
一、安裝MySQL數據庫(在backfire10.3版本中,package已經包含mysql-server.ipk)因此可以直接通過opkg安裝。
opkg update
opkg install mysql-server
二、設置mysql配置文件(/etc/my.cnf)
1. 修改數據庫存放的位置(在/etc/my.cnf中找到如下配置)
datadir =/mnt/data/mysql
tmpdir =/mnt/data/tmp
更改為:
datadir =/mnt/sda3/data/mysql #將數據庫放置到U盤對應分區上存儲 tmpdir =/mnt/sda3/data/tmp #將數據庫臨時文件夾存放到U盤對應分區上 #本人的數據庫存放在U盤第三個分區上,也就是/mnt/sda3,大家根據自己的需要修改
2. 修改數據庫的綁定地址(找到bind-address屬性)
bind-address =127.0.0.1
更改為:
bind-address =0.0.0.0
修改的目的:允許遠程訪問。
保存修改,並退出編輯。
3. 創建數據庫存放文件夾(若my.cnf中datadir以及tmpdir對應存儲位置不存在的話,進行此操作,否則跳過此步驟)
mkdir /mnt/sda3/data mkdir /mnt/sda3/data/mysql mkdir /mnt/sda3/data/tmp #更為簡單的命令 # mkdir -p /mnt/sda3/data /mnt/sda3/data/mysql /mnt/sda3/data/tmp
4. 創建database(執行如下操作)
/usr/bin/mysql_install_db --force
三、啟動MySQL數據庫
1. 啟動mysql守護進程
/etc/init.d/mysqld enable
/etc/init.d/mysqld start
2. 啟動mysql server交互進程:
使用過mysql的親們都清楚,mysql數據庫的操作需要對應用戶有權限才行的。在剛剛建成的數據庫還沒有對用戶設置密碼。那該如何設置呢?有如下兩種方法:
方法一:
使用mysqladmin命令預先設置對應用戶mysql使用密碼,以root用戶為例:
/usr/bin/mysqladmin -u root password XXXXXX # XXXXXX 是為root用戶設置的密碼
方法二:
以非授權方式進入mysql,進行權限設置:
#以非授權的方式啟動mysqld。 mysqld --skip-grant& #root用戶登錄mysql mysql -u root #查看是否存在mysql數據庫 show databases; use mysql; update user set Password=password('XXXXXX') where User='root' and Host='localhost'; flush privileges; exit

Tips: 在此次修改中,我們僅僅設置了localhost的用戶名和密碼,其他權限均沒有設置。如果需要,要另行設置。
關閉mysqld服務
killall mysqld
重啟mysqld服務
/etc/init.d/mysqld start
在設置完密碼和權限之后,以root用戶登錄Mysql:
mysql -u root -p
ok 到此Mysql就能正常登錄和使用了。
四、遇到問題以及解決方法
在本人安裝啟動Mysql的時候,系統報錯:
can't open library 'libncurses.so.5' ...
在網上查看了各種帖子,發現大家說的都好高大上,什么內核版本不對,什么文件鏈接出錯。幾經修改,還是沒有解決問題,后來無意中到查找,居然發現了libncurses的安裝包。。。
http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/

原來缺少libncurses的庫文件的解決方法是:
opkg install libncurses
安裝完畢之后,重啟mysql服務即可正常登陸了。
下一節,介紹在Openwrt上安裝PHP+MySQL。
轉載請注明出處:http://www.cnblogs.com/double-win/ 謝謝!
