玩智能家居只有简单的数据采集和上报是远远不够的,像现在的产品都会有一个完整的数据库在后台保存着所有上报的数据,方便后续的查看和大数据分析等等,所以数据不是简单的采集显示一下就完了,这里使用的是MySQL作为我们的数据后台,本博文记录如何在Ubuntu上安装MySQL并开启远程服务。
安装MySQL
本博客将MySQL安装在我那充当局域网网关的树莓派中用作保存所有线下设备上报的数据,树莓派里的系统是Ubuntu18.04 mate,此安装步骤应该适用于大部分Ubuntu系统,我也是在众多大佬的博客中汲取整理的方法,简单介绍一下。
安装MySQL的服务端
MySQL-server 用于持久保存数据并为其提供查询接口(SQL);可以托管多个数据库并处理这些数据库上的查询,包含存储数据的一系列机制、处理方法的集成。可以把sql语句翻译成对内存和文件的操作,也就是说,server是直接操作文件的。
sudo apt-get install mysql-server
安装的过程中可能会让你设定root密码,用来控制和管理你的数据库的。
安装MySQL的客户端
MySQL-client 客户端程序,用于连接并操作MySQL服务器。
sudo apt install mysql-client
还需要安装客户端依赖的包
sudo apt install libmysqlclient-dev
检查是否成功安装
sudo netstat -tap | grep mysql
或者
mysql --version
开启MySQL的远程访问
为了能够在远程登录和使用MySQL,需要编辑文件 /etc/mysql/mysql.conf.d/mysqld.cnf
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到这句 bind-address = 127.0.0.1:
,将它注销掉即可
#bind-address = 127.0.0.1:
保存退出,完了之后开启MySQL服务
sudo mysql -uroot -p此处直接加上你的mysql的密码
接着输入
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
成功会出现以下提示:
有可能会出现 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 意思说你设置的密码不符合密码策略,简而言之就是密码太简单了,不安全。
解决 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
去查看密码策略
启动了mysql后,输入以下命令
SHOW VARIABLES LIKE 'validate_password%';
- validate_password_length 固定密码的总长度;
- validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
- validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
- validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
- validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
关于 validate_password_policy 的取值:
validate_password_policy 的取值 | 解析 |
---|---|
LOW | 只验证长度; |
MEDIUM | 验证长度、数字、大小写、特殊字符; |
STRONG | 验证长度、数字、大小写、特殊字符、字典文件; |
为了检测简单,设置 validate_password_policy 的全局参数为 LOW 即可,即只验证长度
set global validate_password_policy=LOW;
设置密码长度
set global validate_password_length=要多长写多长;
设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
设置好之后重新运行一次即可
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
刷新配置
flush privileges;
退出mysql并重启
在命令行中直接输入 exit
退出后,运行
sudo service mysql restart
远程连接数据库
至此,代表成功连接了数据库。这里用的是Navicat这个工具,需要的可以自行去百度安装。
在此说明一下,你也可以把你的数据库弄到云服务器里去,通过以上方法也是可以连接的