linux(raspbian)下mysql的安装,权限设置和用户管理

时间:2021-08-14 21:25:31

一 MySQL安装:
(1) 使用apt-get安装, 由于raspbian是基于Debian的*操作系统,debian默认自带apt-get指令安装应用因此可以使用来安装

sudo apt-get install appName

(2)  rpm(Redhat Linux PacketManager)是RedHat公司随RedhatLinux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装安装方式相当于执行了一个可执行程序,
  可以使用:rpm -ivh 软件包名.rpm,来安装软件, 例如:

sudo rpm -ivh packageName.rpm

(3) 有些软件可能是.zip或者.tar.gz 的压缩格式,对于这样的应用需要先下载下来(wget [选项][下载地址]) ,然后 tar指令解压,解压后可以根据情况判断使用什么样的安装方式
  ①:如果解压后的文件夹中有configure

./configure
make
make install

  ②:如果解压后的文件夹中有Makefile

make
make install

  ③:如果解压后的文件夹中有 Imake

xmkmf
make
make install

二 用户管理:

这里主要介绍创建新的用户,修改用户密码,删除用户这几方面;使用mysql指令进入数据库之后

(1)创建用户:

create user 'username'@'host' identified by 'password';

例如:

create user 'stephen'@'%' identified by '';
flush privileges;

表示用户名为stephen的用户可以在任意主机上使用密码'123456'访问数据库。完了后需要使用flush privileges;刷新一下就可以使用该用户登录了,

如果不放心也可以查查mysql.user 表看看用户是否创建,可以

SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user;

查看下刚创建的用户是否存在。

(2) 修改用户密码:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

对于同一用户在不同主机访问mysql是可以设置不同密码的。修改当前用户的密码,可以使用

SET PASSWORD = PASSWORD("newpassword");
flush privileges; 

  这里多次使用到flush privileges,它的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,
如果希望在不重启MySQL服务的情况下直接生效,那么就需要执行这个命令。因此只要有用户信息有修改,不管是用户密码,用户权限还是什么,都可以使用该指令刷新一下。

(3)  删除用户:

DROP USER 'username'@'host';

三 权限设置:

(1)  设置3306端口远程访问权限(设置防火墙),找到并编辑 /etc/sysconfig/iptables在该文件下添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT

这一行确保在下面这两行

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

的上面。然后重启防火墙,即可

service iptables restart

但是这里[捂脸] raspbian 并没有这个iptables, 也不需要设置防火墙,所有我们需要做的就是编辑50-server.conf 文件

sudo vim /etc/mysql/mariadb.conf.d/-server.conf

然后在文件中bind-address = 127.0.0.1 注释掉即可,如下

linux(raspbian)下mysql的安装,权限设置和用户管理

(2) 设置某用户可以通过远程访问某一数据库

GRANT ALL PRIVILEGES ON libname.tablename TO 'username'@'host' IDENTIFIED BY 'password' WITH GRANT OPTION;

例如, 若希望msdb数据库的user_info 表在任意主机上的任意用户都可以访问,可以

GRANT ALL PRIVILEGES ON msdb.user_info TO '%'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

至此,我们就可以在其他主机*问我们想要访问的数据库啦!

-----------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------

更新时间: 2018年4月13日

  使用mysql创建记录时,创建的当前时间有可能并不是Asia/Shanghai 的时区,使用

dpkg-reconfigure tzdata

指令可以进入以下页面

linux(raspbian)下mysql的安装,权限设置和用户管理

设置好之后重启即刻看到mysql中的CURRENT_TIME_STAMP 就是当前的系统时间。