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

 更新时间:2026年06月08日 09:37:58   作者:昵称还在想呢  
本篇教程详细介绍了在Ubuntu系统下下安装MySQL数据库的方法,包括设置root密码、禁用匿名用户、移除test数据库等基本安全配置,并展示了如何增加普通账号并赋予相应权限,以及如何进行远程访问配置,适合初学者学习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 查看鉴定端口是否改变

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

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

总结

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

相关文章

  • MySql安装步骤图文教程及中文乱码的解决方案

    MySql安装步骤图文教程及中文乱码的解决方案

    这篇文章主要介绍了MySql安装步骤图文教程及中文乱码的解决方案,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • mysql中的数据目录用法及说明

    mysql中的数据目录用法及说明

    这篇文章主要介绍了mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Linux下MYSQL 5.7 找回root密码的问题(亲测可用)

    Linux下MYSQL 5.7 找回root密码的问题(亲测可用)

    这篇文章主要介绍了Linux下MYSQL 5.7 找回root密码的问题(亲测可用),通过 --skip-grant-tables 找回,新增完成后,:wq 保存退出,重启mysqld服务,具体内容详情跟随小编一起看看吧
    2021-10-10
  • mysql将bin-log日志文件转为sql文件的方法

    mysql将bin-log日志文件转为sql文件的方法

    这篇文章主要介绍了mysql将bin-log日志文件转为sql文件的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • mysql alter table 修改表命令详细介绍

    mysql alter table 修改表命令详细介绍

    MYSQL ALTER TABLE命令用于修改表结构,例如添加/修改/删除字段、索引、主键等等,本文章通过实例向大家介绍MYSQL ALTER TABLE语句的使用方法,需要的朋友可以参考一下。
    2016-10-10
  • 简单了解mysql方言dialect

    简单了解mysql方言dialect

    这篇文章主要介绍了简单了解数据库方言dialect,数据库方言也是如此,MySQL 是一种方言,Oracle 也是一种方言,MSSQL 也是一种方言,他们之间在遵循 SQL 规范的前提下,都有各自的扩展特性,需要的朋友可以参考下
    2019-07-07
  • MySQL中的集合运算符详解

    MySQL中的集合运算符详解

    本文主要介绍了MySQL中的集合运算符,包括UNION、INTERSECT、EXCEPT等,这些运算符用于结合两个或多个SELECT语句的结果集,并进行去重、合并或差集操作
    2025-02-02
  • ARM64架构下安装mysql5.7.22的全过程

    ARM64架构下安装mysql5.7.22的全过程

    这篇文章主要介绍了ARM64架构下安装mysql5.7.22的全过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • MySQL使用explain命令查看与分析索引的使用情况

    MySQL使用explain命令查看与分析索引的使用情况

    这篇文章主要介绍了MySQL使用explain命令查看与分析索引的使用情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 数据库中的SELECT语句逻辑执行顺序分析

    数据库中的SELECT语句逻辑执行顺序分析

    这篇文章主要介绍了数据库中的SELECT语句逻辑执行顺序分析,并列出了一些例子,需要的朋友可以参考下
    2014-07-07

最新评论