今天心血来潮,想在树莓派上把MysqL服务重弄回来,自从上次树莓派sd卡烧掉之后树莓派也是没怎么重弄服务了。记录一下,成成以后可能也会用到。
一、配置树莓派端服务:
1、下载MysqL-server,这个软件提供MysqL服务端能力,树莓派上就装这个就好。
sudo apt-get install MysqL-server
- 1
2、安装过后启动服务,这时候数据库只能通过root用户登陆,且没有密码
sudo service MysqL start
- 1
sudo MysqL -u root
- 1
这里说的root用户是数据库里的用户,和树莓派的系统root用户没有任何关系。然而登陆数据库root用户需要系统root身份权限,所以要加sudo命令转变身份。
show databases;
- 1
忽略上面的tron这个数据库,这是我自己建了玩的,默认有前三个数据库,而其中的MysqL数据库一般是存放数据库自己的配置的数据库,我们进入这个数据库:
use MysqL;
- 1
然后查看里面的表:
show tables;
- 1
如果没有使用use MysqL
这句话,查看MysqL下的表,需要使用show MysqL.tables
。
这里面有些表和数据库权限有关,以后有机会再说,现在我们要看的是user表,这个表可以用来新建数据库用户,以及用户登陆ip和密码。
先查看该表,由于字段太多,我仅查看我感兴趣的属性(列):
select user, host, password from user;
- 1
忽略我的pi用户,该开始只有root用户,且密码一栏是空的,现在设置root用户密码:
update user set password=password('xxxxxx') where user='root';
- 1
xxxxxx填写要设置的密码。
3、下面创建自己的用户,一般操作数据库少用root用户来操作
create user 'test'@'localhost' identified by 'xxxxxx';
- 1
创建用户test,密码是xxxxxx,localhost表示只能本地登陆,如果改成%表示该用户可以从任意ip登陆。
这时候再去查询user表,就会发现有所更新了(去查查,试试)。
4、用刚刚创建的用户登陆数据库
先用exit
退出root登陆的数据库,然后在终端用刚刚创建的用户登陆:
MysqL -u test -pxxxxxx
- 1
密码和-p参数紧挨着,没有空格,或者直接打-p后面不接东西,然后以安全的方式输入密码。
顺利的话一切都好,但当我们尝试进入某个数据库比如MysqL数据库,会发生权限上的错误:拒绝访问。
这是因为test用户没有任何MysqL数据库的权限,对一个数据库的权限常用的有select,update等,具体有关MysqL权限的东西可以查查其他博客。这里我们直接赋予所有权限:
切换回root用户登陆
赋予所有权限:
grant all on *.* to 'test'@'localhost';
- 更新权限:
flush privileges;
5、再登陆回test用户就可以进行一系列操作了。
6、删除用户
root用户下:
drop user 'test'@'localhost';
- 1
然后查看一下:
select user from MysqL.user;
- 1
二、配置windows客户端:
1、下载MysqL wrokbeach(略)
2、打开后,
hostname是服务器的ip地址,端口一般就是3306,除非自己改过。用户名是数据库用户,对应着我们上面例子里那个test,然后密码。设置好之后点test connection可以测试下数据库连接,正常的话就是可以连接上。
注:可能会存在连不上的问题,是因为服务端设置里只能本地连接的限制,不过我的树莓派中倒是没有这项设置,也没有这种阻碍,具体配置其他博客有说是在
/etc/MysqL/MysqL.conf.d
中有一个bind-address
设置,将它注释或者设为0.0.0.0
即可,没试过,碰到再来谈论吧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。