MySQL安装后的基本安全优化

MySQL5.6及以下的版本,安装后默认自带一个test的数据库,并且在MySQL5.6中,mysql.user用户表中带有用户名为空的用户,等等的默认设置,这些都是不安全的,容易给他人利用的机会。所以需要在安装MySQL后做些优化,加强MySQL数据库的安全性。

  • 1、操作系统与MySQL的基本环境信息:

操作系统版本、操作系统内核版本:lsb_release -a、uname -r

     

   MySQL数据库版本:mysql> select version();

  

    MySQL数据库安装后默认的数据库列表:mysql> show databases;

  

    MySQL数据库安装后默认的用户列表:mysql> select user, host from mysql.user;

   

  • 2、修正方法:

1)、删除 除 [email protected] 及 [email protected]$hostname 外的其他账户:

mysql> drop user ‘‘@‘localhost‘;

mysql> drop user ‘‘@‘apptest‘;

mysql> drop user ‘root‘@‘::1‘; # IPV6

mysql> drop user ‘root‘@‘apptest‘;

mysql> select user, host from mysql.user; # 验证是否删除成功

2)、删除test数据库:

mysql> drop database test;

mysql> show databases; # 验证是否删除成功

3)、修改默认的root密码:

mysql> set password for ‘root‘@‘localhost‘ = password("chiscdc");

# 最好是通过下面的mysqladmin交互命令进行重新设置root密码。

shell> mysqladmin -uroot -hlocalhost -p -S /application/mysql/3306/mysql.sock password

shell> mysqladmin -uroot -h<hostname> -p -S /application/mysql/3306/mysql.sock password

  • 3、平时对数据库用户的授权问题:

坚持最小化权限的原则,对一个库有只有一个专门的用户有操作权限;即在授权时,需要指定数据库名、主机名,且主机名中不要包含任何通配符“%”。

mysql> grant all privileges on jhmyTest.* to ‘test‘@‘192.168.231.9/255.255.255.0‘ identified by "chiscdc";

mysql> flush privileges;

mysql> show grants for ‘test‘@‘192.168.231.9/255.255.255.0‘; # 查看用户权限

4、其他安全注意事项,防止MySQL数据库密码的泄漏:

禁止在shell命令行中输入数据库密码:当在shell命令行中输入明文密码时,会被Linux记录到操作历史记录文件中(可以通过 history命令查看),从而导致密码泄漏。

1)、通过mysqladmin命令修改mysql用户密码:

错误做法,在pasword后直接跟密码字符串: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password "chiscdc"

正确做法:不在password关键字后写任何字串,通过交互方式输入新的密码: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password

2)、通过mysql命令登录mysql:

错误做法,在-p后直接跟密码字符串: shell> mysql -uroot -pchiscdc -S /application/mysql/3306/mysql.sock

正确做法:不在-p后写任何字串,通过交互方式输入新的密码: shell> mysql -uroot -p -S /application/mysql/3306/mysql.sock

3)、通过mysqldump命令进行定时备份数据库:

错误做法,在备份脚本中写明数据库密码,在-p后直接跟密码字符串:

#!/bin/bash

# Backup the MySQL Database Scripts

user="root"

passwd="chiscdc"

mysqldump -u${user} -p${passwd} DBname > Dbname.sql

正确做法【官方文档说是最安全的做法,点此查看官方文档说明】:通过mysql_config_editor命令行工具将MySQL用户名、密码、socket等写入单独的文件中(自动加密了),并且文件赋予只有该文件所属用户只读权限(400),然后在脚本mysqldump命令中通过--defults-file参数读取用户名密码:

shell> mysql_config_editor set --login-path=client --user=root --host=localhost --socket=/application/mysql/3306/mysql.sock --password

shell> mysql_config_editor print --all

设置后,在上面指定的host服务器上登录mysql数据库,也不需要输入用户名、密码等。

新的备份脚本,也不需要指定主机名、用户名、密码等:

#!/bin/bash

# Backup the MySQL Database Scripts

mysqldump --all-databases > backup1.sql

# End Of File

时间: 2024-10-11 22:38:30

MySQL安装后的基本安全优化的相关文章

MySQL安装后默认自带数据库的作用

大家在学习MySQL时,安装后都会发现里边已经自带了几个默认的数据库,我装的MySQL5.5里边自带六个数据库 网上查了一些资料对这几个数据库的功能做一下学习. 1.information_schema 这个库中有很多的表 information_schema数据库表说明: SCHEMATA表:提供了当前mysql实例中所有数据库的信息.是show databases的结果取之此表. TABLES表:提供了关于数据库中的表的信息(包括视图).详细表述了某个表属于哪个schema,表类型,表引擎,

mysql 安装后无法登陆mysql的 shell 那mysql&amp;gt;经验:ERROR 1045 (28000): Access denied for user &amp;#39;root&amp;#39;@&amp;#39;localhost‘

[[email protected] ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 遇到:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 网上找了非常多的文章还是没有解决我的问题. 1.首先能够确认的是mysql 命令行 sql命令keywo

Mysql安装后没有服务

你安装了mysql没有,没有就先安装,安装好mysql以后,在bin目录下有个mysqld.exe,运行这个程序就可以添加mysql服务,但是运行这个程序需要使用参数,否则就会以命令行窗口形式启动MYSQL数据库,命令参数如下: 安装服务(MySQL)的命令:mysqld.exe --install 可以指定服务的名字,例如:mysqld.exe --install MySQL5 以上命令安装的服务是开机自动运行,如果开机不自动启动,那么参数如下:mysqld.exe --install-man

生产服务器环境最小化安装后 Centos 6.5优化配置备忘

本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.解决SSH远程链接访问慢优化 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5.修改ip地址.网关.主机名.DNS 6.关闭selinux,清空iptables 7.创建普通用户并进行sudo授权管理 8.修改SSH端口号和屏蔽root账号远程登陆 9.锁定关键文件系统(禁止非授权用户获得权限) 10.精简开机自启动服务 11.调整系统文件描述符大小 12.设置系统字符集 13.清理登陆

mysql安装后服务启动不了

1.1 前言 最近真的是倒霉到家,装个mysql都能把所有的问题给问候了一遍······不过这也是一个宝贵的经验,得好好总结下,毕竟也不知道以后会不会再次遇到.如果有网友也能像我这样倒霉,但是能够幸运地看到我这个文章,并且真正解决问题,那我就欣慰了. 1.2 我的倒霉过程 公司的新电脑到了,由于个人原因,我想在本机装个mysql,方便自己工作.我知道安装mysql是有两种方式的,一种是msi安装包自动安装,一种是zip包解压后配置相关文件进行安装.刚开始我想都没想就选择了msi自动安装,结果各种

mysql安装后开启远程

操作系统为centos7 64 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2.重启 mysqld 服务:systemctl restart mysqld 3.使用 root 用户登录到 mysql:mysql -u root 4.切换到mysql数据库,更新 user 表: update user set authentication_string = password('r

MySQL安装后的设置和测试(参考MySQL官方文档)

本文讨论安装MySQL后应执行的任务:如有必要,初始化数据目录并创建MySQL授权表.对于某些MySQL安装方式,以下安装方式可以自动进行数据目录初始化:1.由MySQL安装程序执行的Windows安装操作.2.使用Oracle的服务器RPM或Debian发行版在Linux上安装.3.在许多平台上使用本机打包系统进行安装,包括Debian Linux.Ubuntu Linux.Gentoo Linux和其他平台.4.使用DMG发行版在macOS上安装. 对于其他平台和安装类型,必须手动初始化数据

Linux下Mysql安装后设置密码

在Centos中安装Mysql后默认的是没有root密码的,默认的是回车, 那么为了方便需要修改密码. 没有密码为MYSQL加密码: mysql -uroot -p 回车 提示输入密码,为空回车 update mysql.user set password=PASSWORD('12345678') where user='root'; 刷新权限表,输入如下命令 flush privileges; 退出 quit

Windows 10 下mysql 安装后无法启动问题

安装过程: 1. 官网下载5.15.7, http://dev.mysql.com/downloads/, 选择开源社区版:MySQL Community Server (GPL) 2. 我解压后放在 E:\mysql\5.7.15\ 下面 3. 将E:\mysql\5.7.15\bin加入系统path 4. 安装mysql服务: mysqld --install 5. 编辑E:\mysql\5.7.15\my.ini文件 # For advice on how to change settin