查看: 1983|回复: 0

i.MX6开发板学习笔记三——MySql-5.1移植及测试

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-7-29 09:07:46 | 显示全部楼层 |阅读模式
    分享到:
    i.MX6开发板采用了飞思卡尔i.MX6四核处理器大步迈入嵌入式linux——一款iMX6开发板简单介绍了上手体验。本文将阐述如何移植MySql数据库到i.MX6平台,C语言程序测试程序,远程连接测试。

    硬件
    MY-I.MX6 Demo开发平台
    软件
    linux Mfgtools 串口软件

    1. 源码下载
    下载MySQL最新5.1版本的源代码,这里下载的是mysql-5.1.73.tar.gz版本。
    https://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/
    2. 交叉编译与移植
    网上有一份比较详细的mysql-5.1.51版本的MySQL数据库移植手册《Ubuntu下编译ARM平台QtEmbedded的MySQL和MySQL插件.pdf》,5.1.73变化不大,完全可以参考这份文档进行移植。里面的内容都是正确的,但有几个地方不一样:
    1)/bin/bash: line 1: ../scripts/comp_sql: cannot execute binary file
    在文档中comp_sql没有提到,这里只需要进入这个目录下使用gcc命令重新编译一个x86的版本就可以了:
    gcc -o comp_sql comp_sql.c
    2)后面还有一个程序comp_err,直接从x86编译的目录下拷贝过来就可以了。注意可执行文件生成的时间。
    3)make install注意
    直接make install提示错误,sudo make install还是错误。需要先sudo -s,使用root用户make install就不会有错误了。
    这里使用的配置命令为:
    ./configure --host=arm-linux --enable-static
    --with-named-curses-libs=/usr/local/arm/ncurse/lib/libncurses.a
    --prefix=/usr/local/arm/mysql --without-debug --without-docs
    --without-man
    --without-bench
    --with-charset=gb2312
    --with-extra-charsets=ascii,latin1,utf8
    make install命令会将程序安装到/usr/local/arm/mysql目录下,将这个目录拷贝到i.MX6开发板中,注意:开发板目录必须和这里的目录完全一致。
    3. 使用MySQL数据库
    进入开发板MySQL数据库bin目录:
    cd /usr/local/arm/mysql/bin/
    执行安装命令
    ./mysql_install_db --user=root
    会有warning产生,只需要在/etc/hosts文件中加入用户名即可,这里加入viny用户名。
    重新执行命令这条warning即可去除。还有两个Warning是参数更新的,这里没有影响。
    将MySQL自带的默认配置文件拷贝到etc目录下:
    cp /usr/local/arm/mysql/share/mysql/my-large.cnf /etc/my.cnf
    cp /usr/local/arm/mysql/share/mysql/mysql.server /etc/mysql.server
    查看当前MySQL运行状态:
    /etc/mysql.server status
    启动MySQL数据库
    /etc/mysql.server start
    错误解决:
    1)第一次运行可能会有如下错误:
    root@viny /etc$ ./mysql.server start
    Starting MySQL. ERROR! Manager of pid-file quit without updating file.
    解决方法:第一次运行需要安装一下数据库的数据文件保存路径
    ./mysql_install_db --user=root --datadir=/usr/local/arm/mysql/var
    2)相关文件读写权限问题
    /usr/local/arm/mysql/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
    将这个目录mysql文件夹权限改为666就可以了。
    给MySQL增加密码
    ./mysqladmin -u root password 123456
    注意:以上设置已经放到我们主机上的根文件系统了,以后下载后这些内容都存在文件系统中,无需每次手动设置。
    进入数据库测试
    ./mysql -u root –p
    然后输入密码即可进入数据库命令行操作界面。
    上面我们使用了show databases;查看当前系统中安装的数据库
    使用use company;命令选择相应的数据库。
    其他命令可参看MySQL的说明文档。
    4. 远程连接数据库
    在windows电脑上使用navicat软件来远程连接i.MX6开发板中运行的MySQL数据库。
    第一次连接时会出一个1130的错误:
    ERROR 1130: Host '192.168.1.189' is not allowed to connect to thisMySQL server
    解决方法:
    进入数据库命令行,设置root用户任何IP地址都可以访问:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRA NT OPTION;
    flush privileges;
    这样就可以远程操作MySQL数据库了。
    5. C语言测试例程
    简单测试了在C语言中调用mysql提供的API,进行数据库连接、读取、关闭功能。
    源文件:mysql_test.c
    编译方法:
    arm-linux-gcc -o arm_mysql_test mysql_test.c -I/usr/local/arm/mysql/include/mysql -L/usr/local/arm/mysql/lib/mysql -lmysqlclient
    编译成功,会在当前目录下生产arm_mysql_test可执行文件,将此文件使用rz命令传送到开发板中即可进行测试。
    注意:测试之前MySQL数据库必须在开发板中运行,否则程序连接不上数据库。
    测试截图:
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 07:35 , Processed in 0.123091 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.