[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.' ...

在网上查看了各种帖子,发现大家说的都好高大上,什么内核版本不对,什么文件链接出错。几经修改,还是没有解决问题,后来无意中到查找,居然发现了libncurses的安装包。。。

http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/

原来缺少libncurses的库文件的解决方法是:

opkg install libncurses

安装完毕之后,重启mysql服务即可正常登陆了。

下一节,介绍在Openwrt上安装PHP+MySQL。

转载请注明出处:http://www.cnblogs.com/double-win/ 谢谢!

[Openwrt 项目开发笔记]:MySQL配置(六)的更多相关文章

  1. [openwrt 项目开发笔记]: 传送门

    “Openwrt 项目开发笔记”系列传送门: [Openwrt 项目开发笔记]:Openwrt平台搭建(一) (2014-07-11 00:11) [Openwrt 项目开发笔记]:Openwrt平台 ...

  2. [Openwrt 项目开发笔记]:PHP+Nginx安装(七)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们已经搭建了MySQL数据库了,因 ...

  3. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  4. [Openwrt 项目开发笔记]:DDNS设置(五)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我主要讲述了如何在Openwrt上安 ...

  5. [Openwrt 项目开发笔记]:Samba服务&vsFTP服务(四)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...

  6. [Openwrt 项目开发笔记]:USB挂载& U盘启动(三)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一篇中,我结合Netgear Wndr370 ...

  7. [Openwrt 项目开发笔记]:Openwrt必要设置(二)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 前面的两篇blog中,我将如何搭建Openwrt ...

  8. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 昨晚上熬夜写了[Openwrt项目开发笔记]:O ...

  9. Java开发笔记(九十六)线程的基本用法

    每启动一个程序,操作系统的内存中通常会驻留该程序的一个进程,进程包含了程序的完整代码逻辑.一旦程序退出,进程也就随之结束:反之,一旦强行结束进程,程序也会跟着退出.普通的程序代码是从上往下执行的,遇到 ...

随机推荐

  1. lua 中的点、冒号与self

    [lua 中的点.冒号与self] lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用. girl = {money = 200} function girl.goToMark ...

  2. C++ 静态数据成员和静态成员函数

    一 静态数据成员: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义(初始化)不应该被放在头文件中,因为这样做会引起重复定义这样的错误.即使加上#ifndef ...

  3. Redis网络协议

    Redis网络协议较为简单,易于阅读. 命令或数据已\r\n结尾,但除了状态回复,其他数据都是二进制安全的(包含长度) 头部如下: + 正确的状态信息,具体信息是当前行+后面的字符. -  一条错误信 ...

  4. shell中数组基础语法

    数组的基本赋值 arr=(a b c) arr[index]=a 2.常用的两个方法 str=${arr[@]}(数组转化成字符串) len=${#arr[*]}(数组长度) 3.遍历数组的方法 #! ...

  5. [z]Windows 下基于 Eclipse 的可视化远程 Linux C/C++ 开发环境搭建

    http://blog.csdn.net/lostaway/article/details/8086056 1.简介 Windows 下远程 Linux 开发工具,比较著名的就是 WinGDB 和 M ...

  6. 解决Pycharm添加虚拟解释器的报错问题

    问题背景: 新添加一个virtualenv环境时,需要安装指定的django==1.9.8,但是在添加解释器时,总报一个fuck egg的问题!! 解决方式如下: 1. 2. 3.搞定

  7. geoserver的rest服务介绍,搭建java程序

    在geoserver中使用 Restlet 来提供所有的rest服务,并且geoserver中所有的在/rest目录下的请求都被看作为一个restful server,下图就是rest服务的调用过程 ...

  8. BZOJ1699: [Usaco2007 Jan]Balanced Lineup排队 - 线段树

    description 查询区间最大和最小 题解 线段树 愉悦身心啊 代码 #include<cstring> #include<cstdio> #include<alg ...

  9. 2、C++

    2.2定义变量 2.2.1命名规则 赋予变量的名称叫做标识符,或者更方便地称之为变量名.变量名可用字母(包括大小写),数字,以及下划线,其他字符不允许.以下划线或者字母开头.在Visual C++20 ...

  10. ipad The data couldn’t be read because it isn’t in the correct format

    原来是land left和land right都勾选的,去掉land left后出现这个问题