0


ubuntu安装Mysql数据库及安全配置

前言

与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本....

本次文章介绍了在ubuntu系统下如何安装mysql数据库 以及安装之后你应当如何配置root密码认证和其他基本安全配置,还介绍了增加普通账号 并赋予相应的最小权限,及如何远程访问数据库...

每一次命令都有相应的截图 十分的详细 非常适合新手朋友们学习。

安装mysql

直接运行命令 安装mysql

sudo apt-get update
sudo apt install mysql-server

命令成功执行后 mysql服务应该是成功启动 监听在本地127.0.0.1的端口3306

意思是只能本地连接mysql 不对外开放

当然如果你有这个需求 可以监听在网卡上 只需修改配置文件就行。这个稍后会说 ,让我们先配置下基本的安全策略

mysql基本安全配置

初次安装mysql 建议运行下面的命令 快捷地对数据库做基本的安全配置,像root 密码了,密码复杂度了...

sudo mysql_secure_installation

1.增加密码组件

询问我们是否要设置验证密码组件?y

2.设置root密码

可以看到数据库为我们提供了三种密码策略 中级策略 长度大于等于8位 需是数字 字母大小写 特殊字符的组合

选择一种密码策略 enter 0

这里出了点错误,密码一直不能通过 即使我没有选择y 也不是密码不符合要求
提示我们要使用alter user 的方式来设置密码 好吧 我们先进入数据库把密码设置一下 之后继续配置

sudo mysql
mysql> alter user 'root'@'localhost' identified with mysql_native_password by by '123.Shelter';

需要注意的是默认的密码策略是中级 必须是数字大小写字母 特殊符号的8位以上组合

成功后 exit 退出
继续 sudo mysql_secure_installation 进行配置

已经设置过密码不需要改变密码了 Press n

3.禁用匿名用户

要移除匿名用户吗? 我们肯定不希望系统的数据库随便被他人查看 所以最好移除掉匿名用户
假如我是学校教数据库的老师 ,我希望每个学生都能够连接上这个数据 练习sql语句 ,那匿名访问再合适不过了。

4.root 远程登录

正常地 root用户只允许本地 你是否禁用掉root的远程登录 ?n
root是数据库的最高权限用户 ,如果可以远程登录存在暴力破解的可能,如果需要远程登录 我们最好设置一个普通权限的用户,这点稍后会说

5.移除test数据库

默认情况下下 数据库为开发者们提供了一个名为test数据库 供学习与测试
如果你不需要 最好将它移除掉

6.刷新权限表

与配置文件不同 我们在数据库所做的所有配置 都存在了sql数据库中权限表里
询问我们要reload吗 y
这里就全部配置好了

登录数据查看基本配置

要进入数据库 这时候就需要使用密码登录了

mysql -u root -p

查看当前数据库下存在的用户

mysql> select user,authentication_string,plugin,host from mysql.user;

(这里仍然可以使用之前的命令alter user 'root'@'localhost' identified with mysql_native_password by by '123.Shelter';修改密码)
可以看到root是本地用户 密码是hash后的值

查看当前密码安全策略

mysql> select @@validate_password_policy;

查看具体的设置项

mysql> SHOW VARIABLES LIKE 'validate_password%';

这里可以再次设置策略 如

mysql> set global validate_password_policy=0;

增加数据库普通账号及分配相应权限

假设我们现在想增加一个pikaqiu的账号 为了安全考虑 这个账号只允许访问pikaqiu数据库

1.先建立一个数据库

mysql> create database pikaqiu; 

2.增加账号

mysql>create user 'pikaqiu'@'localhost' identified by 'Pikaqiu.123'

3.应用权限

mysql>grant all privileges on pikaqiu.* to 'pikaqiu'@'localhost' with grant option;

pikaqiu这个账号只拥有 pikaqiu库的权限

4.刷新权限

mysql>flush privileges;

接下来测试一下 登录pikaqiu账号看看它是否能访问其他数据库

可以看到相较于root用户下的库 这已经少了很多

配置数据库远程登录

假设我们有需求 在外面web服务器要使用远程访问这台数据库 那么要什么设置呢。

1.增加一个远程账号

mysql>create user 'ssh'@'%' identified by 'Ssh.1234'

2.添加一个数据库

这里为了测试我添加了一个名为ssh的数据库

mysql> create database ssh;

3.限制远程访问权限

我只想让ssh这个用户 只访问ssh这个数据库 因此

mysql>grant all privileges on ssh.* to 'ssh'@'%' with grant option;

(这个命令需要sudo 权限下mysql)

4.修改配置文件 监听网卡端口

这里还没有结束 因为此时还在监听本地回环地址呢 先flush privileges; 一下 之后退出mysql

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 
    bind-address = 192.168.20.4

5.重启服务

sudo systemctl restart mysql.service

可以使用 ss -anplt | grep 3306 查看鉴定端口是否改变

这里我用同学的电脑数据库的客户端连接测试

可以看到 远程成功地连接上了数据库


本文转载自: https://blog.csdn.net/shelter1234567/article/details/128065959
版权归原作者 昵称还在想呢 所有, 如有侵权,请联系我们删除。

“ubuntu安装Mysql数据库及安全配置”的评论:

还没有评论