博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树莓派上安装和使用MySQL,Java链接数据库,javac编译,linux命令行执行
阅读量:679 次
发布时间:2019-03-17

本文共 3527 字,大约阅读时间需要 11 分钟。

树莓派配置mysql

raspberry pi(树莓派)上安装和使用MySQL,并通过Navicat远程访问配置脱坑记录

本文部分为转载文章 请尊重原创原文链接
1、在安装之前首先对树莓派更新源文件

$ sudo apt-get update

$ sudo apt-get upgrade
2.、安装MySQL

使用管理员权限运行apt-get获取最新的MySQL:

$ sudo apt-get install mysql-server

  安装过程中需要输入root管理员的密码,该密码之后用于访问数据库系统
3、测试MySQL
  通过以下命令运行MySQL的命令提示系统,并输入在安装过程中设置的密码:

$ sudo mysql -u root -p

而笔者就遇到一个情况,在安装过程,本来以为中间会提示输入密码,结果一口气就安装完了,完全不知道怎么登陆,密码也不知道,还好有个博主遇到了一样的问题,借鉴了他的方法解决了这个问题

以空密码登陆

$ sudo mysql -u root

能登陆当然肯定是要修改密码了

复制代码

数据库中使用

连接数据库

use mysql;

修改密码为123456

set password=PASSWORD(‘123456’)

刷新

flush privileges;

退出

exit; 或者 \q;

复制代码

4、Navicat for MySQL 远程连接(Win7)

本以为上面做的那些努力就可以访问MySQL,结果各种连接失败后才知道树莓派 MySQL 默认只监听本地ip访问,如果需要远程IP访问还需要修改系统配置文件,但查了很多论坛发现都是

修改 /etc/mysql/my.cnf

$ vi /etc/mysql/my.cnf

或者直接Logout(注销) 再使用 root 登陆再找到 /etc/mysql/my.cnf文件打开并修改

  找到 bind-address = 127.0.0.1 把 127.0.0.1 改成 0.0.0.0 就可以远程访问了。

而笔者发现这个版本的树莓派系统(2017-09-07-raspbian-stretch.img )在/etc/mysql/my.cnf 中并没有这行代码,或许是新版本的文件改版的问题(或许也可能是与笔者的缘分问题)

最终/etc/mysql目录下都找了一遍,终于发现在mariadb.conf.d目录下的 50-server.cnf 文件找到了bind-address = 127.0.0.1 并把它改成0.0.0.0

终于解决了远程访问树莓派mysql默认只监听本地ip访问的问题。

Navicat for MySQL软件配置如下:

IP:树莓派的IP地址

端口号:3306

用户名:MySQL的用户名

密码:MySQL的设置的密码

Java 连接数据库

import java.sql.*;

public class Main{
static final String MARIADBDIVER=“org.mariadb.jdbc.Driver”;//椹卞姩鍦板潃
static final String MARIADBURL=“jdbc:mariadb://localhost:3306/gaowanlu”;//鏁版嵁搴撳湴鍧€
static final String USER=“root”;//鏁版嵁搴撶敤鎴峰悕
static final String PWD=“gaowanlu”;//瀵嗙爜

public static void main(String[] args){    Connection connection=null;//杩炴帴鍣�    Statement statement=null;//杩炴帴鐘舵€�    try{        Class.forName(MARIADBDIVER);//椹卞姩娉ㄥ唽        System.out.println("椹卞姩ok");        connection=DriverManager.getConnection(MARIADBURL,USER,PWD);//寤虹珛鏁版嵁搴撹繛鎺�        statement=connection.createStatement();//鍒涘缓鏁版嵁搴撹繛鎺ョ姸鎬�        String sql;//SQL璇彞        sql="SELECT * FROM testtable;";//SQL璇彞涔﹀啓        ResultSet rs=statement.executeQuery(sql);//鎵цSQL骞惰繑鍥炴绱㈤泦鍚�                while(rs.next()){            int user = rs.getInt("user");            String password = rs.getString("password");            System.out.println("user: " + user);            System.out.println("password: " + password);                       }        rs.close();//鍏抽棴妫€绱㈠埌鐨勯泦鍚�        statement.close();//鍏抽棴杩炴帴鐘舵€�        connection.close();//鏂紑鏁版嵁搴撹繛鎺�    }    catch(SQLException e){//鎹曡幏SQL鎵ц寮傚父        e.printStackTrace();    }    catch(Exception e){//鎹曡幏寮傚父        e.printStackTrace();    }    finally{//姝e父鎵ц缁撴潫        try{//鍏抽棴杩炴帴鐘舵€�            if(statement!=null) statement.close();        }        catch(SQLException e){//鎹曡幏SQL寮傚父            e.printStackTrace();        }        try{//鏂紑鏁版嵁搴撹繛鎺�            if(connection!=null) connection.close();        }        catch(SQLException e){//鎹曡幏SQL寮傚父            e.printStackTrace();        }    }        }//end-main_method

}//end-Main_class

Javac

需要下载mariadb的jar包

https://mariadb.com/downloads/#connectors

  • 关于java connector使用,
  • 在Main.java路径下建立文件夹 $mkdir classdir
  • 将jar包放进classdir文件夹下
  • 将jar包改名为mysql.jar 好记
  • 将上面的源代码根据自己情况更改
  • $javac -classpath .:classdir/mysql.jar Main.java

Java

运行

  • $java -classpath .:classdir/mysql.jar Main

一切配置完毕,畅想mariadb吧

关于怎样将数据库放到磁盘或者U盘呢

  • 使用挂载
  • mysql 默认吧一切放在/var/lib/mysql
  • 下面方法每次开机都需需要重新执行
  • $sudo cp -r /var/lib/mysql /media/pi/DIST/ (你想要用的位置)
  • 然后关闭mysql $sudo service mysql stop
  • 挂载命令
  • sudo mount -o /media/pi/DIST/mysql /var/lib/mysql
  • 开启 mysql $service mysql start
  • 如果不想每次开机都手动输入
  • $ sudo vim /etc/fstab
  • 在文件内添加一行命令
  • /media/pi/DIST/mysql /var/lib/mysql none defaults,bind 0 2

请根据自身情况进行选择配置

你可能感兴趣的文章