当前位置:网站首页>树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库
树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库
2022-06-21 21:38:00 【长沙红胖子Qt】
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/125167513
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
树莓派开发专栏
上一篇:《树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口》
下一篇:《树莓派开发笔记(十六):树莓派4B+安装mariadb数据库(mysql开源分支)并测试基本操作》
前言
树莓派使用数据库时,优先选择sqlite数据库,但是sqlite是文件数据库同时仅针对于单用户的情况,考虑到多用户的情况,在树莓派上部署安装mysql服务,通过读写锁事务等使用,可以实现多进程可以操作同一个数据库的同一个表的读写并行操作。
树莓派安装mysql
步骤一:安装mysql服务器
(前面一更新原来有的mariadb现在都没了,–__–!!)
原来(未update前的)
sudo apt-get install mysql-server

经查询,mariadb是mysql的一个开源分支,树莓派没有mysql本身,按照建议安装mariadb。
sudo apt-get install mariabdb-server-10.0

结果装不上,缺少一些部件和网址打开不开,于是考虑更新源。
步骤二:更新源,需要手动更新sudo apt update
sudo apt-get update

更改树莓派手动更新:
sudo apt update
出现无法更新的,点击y手动即可:

继续补刀查看:
sudo apt-get update
sudp apt-get upgrade

现在,update后的,tab都没有了

这里再补充一下:此时是没有了,后续继续编译mysql,然后又有了,如下图:

什么原因导致的不太清楚。(如果有建议这样安装,没必要编译源码,比较费时间还要解决各种错误)
步骤三:下载mysql源码
下载:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz

QQ群下载地址:1047134658(点击“文件”搜索“mysql”,群内与博文同步更新)
步骤四:复制解压
大小不够进行了扩容,记住扩容的操作只能执行一次,执行超过一次(未重启)系统就会起不来。

解压:
mkdir -p ~/work/src
拷贝进来,然后解压
cd ~/work/src
tar xvf mysql-5.6.34.tar.gz

步骤五:cmake配置
安装cmake:
sudo apt-get install cmake
cmake配置:
cmake ./ -DCMAKE_INSTALL_PREFIX=/home/pi/mysql \
-DMYSQL_DATADIR=/home/pi/mysql/data \
-DSYSCONFDIR=/home/pi/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

出现错误:

需要先安装ncurses:
cd ~/work/src
wget https://invisible-mirror.net/archives/ncurses/ncurses-6.1.tar.gz
tar -xvf ncurses-6.1.tar.gz
cd ncurses-6.1/
./configure
make -j4
sudo make install

然后,继续配置:
cmake ./ -DCMAKE_INSTALL_PREFIX=/home/pi/mysql \
-DMYSQL_DATADIR=/home/pi/mysql/data \
-DSYSCONFDIR=/home/pi/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
配置成功:

步骤六:编译make
make -j4

出现错误:
error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

直接修改源码:
vi sql/sql_acl.cc
输入k,再输入3037即可定位到:

继续编译:
make -j4
错误:查询时没有连接nurces,前面也确实安装了,但是这个错误是没有连接到ncurses库,需要自己添加下(各种方法都试了,最后直接强制指定):

建立软连接:
sudo ln -s libncurses.so.6 libncurses.so
然后libncur*全部拷贝到/lib下
sudo cp -arf libncurses* ../
然后cmake配置强制指定路径:
cmake ./ -DCMAKE_INSTALL_PREFIX=/home/pi/mysql \
-DMYSQL_DATADIR=/home/pi/mysql/data \
-DSYSCONFDIR=/home/pi/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DCURSES_LIBRARY=/lib/libncurses.so
然后继续编译:
make

步骤七:安装make install
sudo make install

安装完成:

步骤八:测试mysql
运行mysql:

错误:
Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)
查找:
find / -name mysql.sock

没有找到,然后找一下配置文件my.cnf
sudo find / -name my.cnf

是服务没有起来,需要配置一些服务,在这里就不追加了,有兴趣的可以继续。
上一篇:《树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口》
下一篇:《树莓派开发笔记(十六):树莓派4B+安装mariadb数据库(mysql开源分支)并测试基本操作》
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/125167513
边栏推荐
- The concept of multiprocess and Multithread
- C语言【隐式类型转换】和【显式类型转换】的详解
- Explain JS micro task and macro task in simple terms
- H5之微信授权登陆 (uniapp网页版微信授权登录)
- Distributed database uses logical volume to manage storage expansion
- . File header parsing of BMP pictures
- Go service platform project (I) design of database tables and use of gendry Library
- 微信小程序获取网络状态
- SIGIR2022 | 對話式推薦系統中的用戶偏好建模
- Solve the problem that the letter of a key in laptop (I) cannot be pressed
猜你喜欢

阿里出品!图形化的ant脚本——IDEA插件CloudToolkit

It is said that the design of high concurrency system is not difficult at all!

软件测试 答疑篇

Elementary transformation of numpy matrix

How to adjust the resolution of the computer screen? Computer screen modification resolution switchresx

Notes de développement de la tarte aux framboises (XVI): la tarte aux framboises 4b + installe la base de données mariadb (MySQL open source Branch) et teste les opérations de base

The way of FPGA -- project scheme and FPGA design scheme of FPGA development process

C# 委托(Delegate)

danfoss丹佛斯变频器维修VLT5000/VLT6000/VLT8000

mongo 内存占用过大被系统自动关闭问题
随机推荐
How to use metric unit buffer in PostGIS
Niuke month race - insectivores on the ring
Produced by Ali! Graphical ant script - idea plug-in cloudtoolkit
uniapp封装request函数 实现唯一登录,一个账号同时只能登陆一个设备
Is it safe for the head teacher to open a stock account in qiniu?
阿里出品!图形化的ant脚本——IDEA插件CloudToolkit
Software testing concepts
使用云开发实现微信支付的具体方法
Notes on the development of raspberry pie (17): QT multi-user connection operation on raspberry pie 4b+ MySQL database synchronization (pessimistic lock of single data)
开发环境和测试环境的发包(及uniapp的request封装)
Mongo uses too much memory and is automatically shut down by the system
H5之微信授权登陆 (uniapp网页版微信授权登录)
postgres 通过 limit 切片数据
啊啊啊啊啊啊啊
【深入理解指针】指针的进阶
Common options and commands of Synplify Pro
Text text associated with scroll scroll bar in Tkinter
The way of FPGA -- project scheme and FPGA design scheme of FPGA development process
SIGIR2022 | 對話式推薦系統中的用戶偏好建模
深入浅出讲解 JS 的微任务与宏任务