Ubuntu安装Mysql数据库及安全配置过程

作者:袖梨 2026-06-09

前言

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

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

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

安装mysql

直接运行命令 安装mysql

sudo apt-get updatesudo apt install mysql-server

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

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

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

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

mysql基本安全配置

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

sudo mysql_secure_installation

1.增加密码组件

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

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

2.设置root密码

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

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

选择一种密码策略 enter 0

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

这里出了点错误,密码一直不能通过  即使我没有选择y 也不是密码不符合要求

提示我们要使用alter user 的方式来设置密码 好吧 我们先进入数据库把密码设置一下 之后继续配置

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

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

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

成功后 exit 退出

继续 sudo mysql_secure_installation 进行配置

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

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

3.禁用匿名用户

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

要移除匿名用户吗? 我们肯定不希望系统的数据库随便被他人查看 所以最好移除掉匿名用户

假如我是学校教数据库的老师 ,我希望每个学生都能够连接上这个数据 练习sql语句 ,那匿名访问再合适不过了。

4.root 远程登录

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

正常地 root用户只允许本地 你是否禁用掉root的远程登录 ?n

root是数据库的最高权限用户 ,如果可以远程登录存在暴.力.破.解的可能,如果需要远程登录 我们最好设置一个普通权限的用户,这点稍后会说

5.移除test数据库

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

默认情况下下 数据库为开发者们提供了一个名为test数据库 供学习与测试

如果你不需要 最好将它移除掉

6.刷新权限表

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

与配置文件不同 我们在数据库所做的所有配置 都存在了sql数据库中权限表里

询问我们要reload吗 y

这里就全部配置好了

登录数据查看基本配置

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

mysql -u root -p

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

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

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

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

(这里仍然可以使用之前的命令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; 

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

2.增加账号

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

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

3.应用权限

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

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

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

4.刷新权限

mysql>flush privileges;

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

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

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

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

配置数据库远程登录

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

1.增加一个远程账号

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

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

2.添加一个数据库

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

mysql> create database ssh;

3.限制远程访问权限

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

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

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

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

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

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

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

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

5.重启服务

sudo systemctl restart mysql.service

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

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

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

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

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

您可能感兴趣的文章:
  • Liunx上安装MySQL实践
  • MySQL主从复制的原生安装配置方案(非Docker环境)
  • Docker安装mysql8.0并配置忽略大小写问题
  • Linux安装mysql报错NOKEY的解决过程
  • MySQL5卸载到MySQL8安装的不踩坑指南
  • 数据库MySQL/MariaDB安装与基础调优过程

相关文章

精彩推荐