本文共 3527 字,大约阅读时间需要 11 分钟。
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;
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的设置的密码
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
需要下载mariadb的jar包
https://mariadb.com/downloads/#connectors运行