前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器的Mysql初始化设置

服务器的Mysql初始化设置

作者头像
Originalee
发布2018-10-11 10:00:44
2.5K0
发布2018-10-11 10:00:44
举报
文章被收录于专栏:编程之旅编程之旅

继上篇博客记录了服务器的初始化安全设置之后,本篇文章会记录Mysql数据库的初始化安全设置。在操作mysql之前,最好先行备份,毕竟有“备”无患嘛。

一、修改root用户的口令

在Ubuntu16.04版本的服务器上,如果安装mysql的话会要求大家设置root的密码,若是没有设置过root用户的密码,可以用下面三种方法来这是

  • 用mysqladmin命令来改root用户口令
代码语言:javascript
复制
mysqladmin -u root password 123456 // 设置mysql管理员root的密码为123456
  • 用set password命令来修改密码:
代码语言:javascript
复制
mysql> set password for root@localhost=password('123456');
  • 直接修改user表的root用户口令
代码语言:javascript
复制
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
mysql> flush privileges;

这就是三种修改mysql中管理员口令的操作方式。

二、删除默认的数据库和用户

mysql初始化后会自动生成空用户和test库,但实际上这样会留有安全隐患,所以我们在这里选择全部删除的操作。我们在命令行进入mysql后执行下面这些命令。

代码语言:javascript
复制
mysql> drop database test;
mysql> use mysql;
mysql> delete from db;
mysql> delete from user where not(host="localhost" and user="root");
mysql> flush privileges;

三、修改默认的管理员名称

因为默认的管理员名称是root,为了防止别人对root这个登录名进行暴力破解,我们最好也能把root用户的名称改掉,防止穷举破解。

同样的执行下面的操作就能修改用户名,这个例子里我们把数据库管理员root的名称改为original。

代码语言:javascript
复制
mysql> use mysql;
mysql> update user set user="original" where user="root";
mysql> flush privileges;

四、禁止远程连接mysql

正常的话我们的mysql只是后端的程序来进行连接,所以我们无需开启socket进行监听,那么我们可以关闭mysql的监听功能。

  • 在my.cnf文件里,[mysqld]的部分添加skip-networking参数。
  • mysqld服务器中参数中添加 –skip-networking 启动参数来使mysql不监听任何TCP/IP连接,增加安全性。如果要进行mysql的管理的话,可以在服务器本地安装一个phpMyadmin来进行管理。

五、使用特定用户访问数据库

我们可以针对每个库,创建特定的账户,给予这些账户针对某个库有 update、select、delete、insert、drop table、create table等权限。这样就能很好的避免某个库被攻破后不牵连其他库了。而当我们设置完善之后,最好就不要在使用root用户来访问数据库了。

六、删除历史记录

执行以上的命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读, 那么数据库的密码就会泄漏。用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。 如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。所以我们在shell登陆及备份的时候 不要在-p后直接加密码,而是在提示后再输入数据库密码。 另外这两个文件我们也应该不让它记录我们的操作,以防万一。

代码语言:javascript
复制
$ rm .bash_history .mysql_history
$ ln -s /dev/null .bash_history
$ ln -s /dev/null .mysql_history

我自己常用的就是这六个步骤的设置,虽然不是很全,但是也勉强够用咯。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、修改root用户的口令
  • 二、删除默认的数据库和用户
  • 三、修改默认的管理员名称
  • 四、禁止远程连接mysql
  • 五、使用特定用户访问数据库
  • 六、删除历史记录
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档