2

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库

 1 year ago
source link: https://blog.51cto.com/hongpangzi/5366218
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

  树莓派使用数据库时,优先选择sqlite数据库,但是sqlite是文件数据库同时仅针对于单用户的情况,考虑到多用户的情况,在树莓派上部署安装mysql服务,通过读写锁事务等使用,可以实现多进程可以操作同一个数据库的同一个表的读写并行操作。

<br>

树莓派安装mysql

步骤一:安装mysql服务器

  (前面一更新原来有的mariadb现在都没了,–__–!!)
  原来(未update前的)

sudo apt-get install mysql-server

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派

  经查询,mariadb是mysql的一个开源分支,树莓派没有mysql本身,按照建议安装mariadb。

sudo apt-get install mariabdb-server-10.0

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_02

  结果装不上,缺少一些部件和网址打开不开,于是考虑更新源。

步骤二:更新源,需要手动更新sudo apt update

sudo apt-get update

  树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_03
  更改树莓派手动更新:

sudo apt update

  出现无法更新的,点击y手动即可:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_04

  继续补刀查看:

sudo apt-get update
sudp apt-get upgrade

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_05

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

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_06

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

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_07

  什么原因导致的不太清楚。(如果有建议这样安装,没必要编译源码,比较费时间还要解决各种错误)

步骤三:下载mysql源码

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_08

步骤四:复制解压

  大小不够进行了扩容,记住扩容的操作只能执行一次,执行超过一次(未重启)系统就会起不来。

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_09

  解压:

mkdir -p ~/work/src

  拷贝进来,然后解压

cd ~/work/src
tar xvf mysql-5.6.34.tar.gz

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_10

步骤五: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

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_11

  出现错误:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_12

  需要先安装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

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_13

  然后,继续配置:

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

  配置成功:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_14

步骤六:编译make

make -j4

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_15

  出现错误:

error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_16

  直接修改源码:

vi sql/sql_acl.cc

  输入k,再输入3037即可定位到:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_17

  继续编译:

make -j4

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

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_18

  建立软连接:

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

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_19

步骤七:安装make install

sudo make install

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_20

  安装完成:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_21

步骤八:测试mysql

  运行mysql:

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_mysql_22

  错误:

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

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_树莓派_23

  没有找到,然后找一下配置文件my.cnf

sudo find / -name my.cnf

  

树莓派开发笔记(十五):树莓派4B+从源码编译安装mysql数据库_插入图片_24

  是服务没有起来,需要配置一些服务,在这里就不追加了,有兴趣的可以继续。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK