树莓派配置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