项目需要在ltib-linux上使用mysql,以前没有做过,现在将做的过程记录下来:
1. 在ltib上添加mysql包,按照文档添加命令为:./ltib -c; 然后将mysql选上。然后编译。
2. 目标板的启动方式,有四中启动方式:
2.1. ramdisk: 这个种方式是将操作系统、文件系统、还有一个usb配置文件,都放在了内存中,主要用于开发时方便操作,但是添加了mysql之后,文件系统会急剧膨胀,导致,内存空间不足,所以不能用这种方式启动。
2.2. jffs2: 这种方式是将文件系统放在flash中,jfss2本身就是一种适用于flash存储的文件系统格式,但是同2.1同样道理,flash空间也是有限的,所以也不能通过这种方式启动。需要配置ltib,在编译的时候生成jffs2文件系统。
2.3. sata: 这种方式是将操作系统、文件系统、还有一个usb配置文件,都放在sata硬盘上,可以这么做。
2.4. nfs: 这种方式是将操作系统、还有一个usb配置文件,放在ram中,文件系统放在本地上。目标板在启动后通过网络访问本地上的文件系统,这个在配置ltib后,会生成rootfs文件夹,这个就是nfs文件系统。这种方式需要配饰本地机,开启nfs服务。
以上的方式都需要配置bootloader的启动参数,可以参考文档。
3. 在目标板上启动和配置mysql过程:
3.1. mysql的启动方式在网上搜索到有几种,但是我用的是使用/usr/bin目录下的mysql_safe命令来启动,直接输入这个命令前需要建立目录/usr/var, 并且将var的改为mysql组,命令为chown -R mysql.mysql /usr/var,并且在/usr/var下建立文件mpc8315erdb.err文件,这个文件会记录在启动过程中的log,出问题了可以在这个文件找到相应的错误原因。并且这个目录可以修改。从自己的配置过程开,这个目录和文件只是暂时的用到。
3.2. 用mysql_install_db --user=mysql --ldata=/sqldata命令建立数据库和临时数据的存放路径,现在放在/sqldata文件里面。
3.3. 用mysqld_safe --datadir=/sqldata --user=mysql &命令启动mysql,在启动的过程中,mysql会建立很多、很大的缓存文件,这是导致文件系统变大的原因,虽然可以修改创建文件的大小,但是不确定多少合适,所以没有轻易的选择修改,而是”随它去“。启动后可以通过ps命令查看mysql进程是否正在运行,如果有就表示初始化和配置ok。
4. 启动时遇到的错误及解决方案:
4.1. 在做3.3部的时候有时候可能会出现异常停止,这个时候可以在/mysql/mpc8315erdb.err文件里找到错误原因,常见的错误网上都有解答。下面记录几个自己有心得的错误。
4.2. 出现权限的问题,这个问题有两种类型:1. mysql启动的时候需要动态建立文件夹,但是不是root权限,建立的时候出现权限不对,可以根据log自己手动添加,并且更改权限。2.出现“mysql.host”文件不存在的错误,这个在网上搜索的结果为,删除存放mysql数据库的地方,或者更改数据库的文件夹然后执行mysql_install_db --usr=mysql --ldata=/sqldata,如果不是删除原有的数据库第二个参数需要对应你选择的路径。
文件系统里已经配置好了,再次启动开机的时候只需要运行mysqld_safe --datadir=/sqldata --user=mysql &命令就行了。
5. 查看数据库的命令是:
5.1. 进入mysql: mysql -u root
5.2. 显示数据表:show databases;
5.3. 退出:quit;