我们要注意的Mysql基本安全设置

1.设置或修改Mysql root密码:
默认安装后空密码,以mysqladmin命令设置密码:

mysqladmin -uroot password "password"

Mysql命令设置密码:

mysql> set password for [email protected]=password(‘password);

更改密码:

update mysql.user set password=password(‘password‘) where user=‘root‘;
flush privileges;

2.删除默认的数据库和用户

drop database test;
use mysql;
delete from db;
delete from user where not(host="localhost" and user="root");
flush privileges;

3. 更改默认root账号名称:

update mysql.user set user="admin" where user="root";
flush privileges;

4. 本地文件安全:

set-variable=local-infile=0

5. 禁止远程连接mysql,远程管理可通过phpmyadmin,编辑my.cnf在[mysqld]添加:

skip-networking

6.最小权限用户:

create database db1;
grant select,insert,update,delete,create,drop privileges on database.* to [email protected] identified by ‘passwd‘;

7. 限制普通用户浏览其它数据库,编辑my.cnf在[mysqld]添加:

--skip-show-database

8.快速修复MySQL数据库
修复数据库

mysqlcheck -A -o -r -p

修复指定的数据库

mysqlcheck  -o -r database -p

9.跟据内存的大小选择MySQL的配置文件:

my-small.cnf # > my-medium.cnf # 32M - 64M
my-large.cnf # memory = 512M
my-huge.cnf # 1G-2G
my-innodb-heavy-4G.cnf # 4GB
时间: 2024-10-13 00:31:29

我们要注意的Mysql基本安全设置的相关文章

MySQL之MySQL:prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库

是开始但愿不是结束,是起点但愿不是终点 今天在做MySQL练习过程中,突然发现,登陆mysql后,命令行不能显示用户名和主机信息,同时呢,想查看数据库信息还需要查看select datebase()命令查看,特别不方便,因此特别查看了mysql的相关资料,每次通过客户端登陆怎么才能显示这些信息呢?其实MySQL的相关设置都在配置文件my.cnf中可以设置.因此就去看my.cnf文件,之前就使用下,没有细心看.my.cnf配置文件中两大部分:[client]和[mysqld],前者是客户端的配置参

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

MySQL外键设置中的的属性含义: cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 Restrict方式 同no action, 都是立即检查外键约束 Set default方式 父表有变更

Mysql 慢查询设置

Mysql慢查询设置 分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”. ========================================================= 方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的. Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. mysql> show variables like 'lon

添加MySql数据库超时设置的相关问题

最近在工作中, 遇到MySql数据库连接超时的问题,申同事帮忙解决了一下,看到原来的MySqlHelper里面没有封装相关的超时方法,就添加了一个,我在这里记录了一下,希望对像我一样入门级的程序员有所帮助: 如下方法: Private int ExecuteScalarBySql(string sqlstr) { try{ using((MySqlConnection mysqlconn)=new MySqlConnection(Config.ConnectionStrings)) { mysq

Mysql select语句设置默认值

1.在没有设置默认值的情况下: SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_time FROM userinfo LEFT JOIN region ON userinfo.adm_regionid = region.id 结果: 设置显示默认值: SELECT userinfo.id, user_name, role, adm_regionid, IFNULL(region_name,0) as

CentOS下mysql最大连接数设置 1040 too many connection

当最大连接数比较小时,可能会出现"1040 too many connection"错误. 可以通过修改配置文件来修改最大连接数,但我连配置文件在哪都不知道,应该怎么办呢? 首先需要重启mysql服务,执行命令:service mysql restart 也有可能是:service mysqld restart 登录mysql:mysql -uroot -p输入密码,回车: 登录成功后执行以下语句查询当前的最大连接数:select VARIABLE_VALUE from informa

Mysql用户密码设置修改和权限分配

我的mysql安装在c:\mysql 一.更改密码 第一种方式: 1.更改之前root没有密码的情况 c:\mysql\bin>mysqladmin -u root password "your password" 2.更改之前root有密码的情况,假如为123456 c:\mysql\bin>mysqladmin -u root -p123456 password "your password" 注意:更改的密码不能用单引号,可用双引号或不用引号 第二

mysql的密码设置以及常规优化配置

最近有人在问我mysql的密码设置,刚好最近手头上有mysql服务器需要常规优化配置,那么这里就简单的说一下吧: 一.首先是mysql的密码设置 要知道,在实际生产环境中mysql的root用户要是没有密码是非常不安全的,而在新安装的mysql一般都是没有密码的,那么我们在对mysql部署后除了必要的安全措施(可以参看:http://jim123.blog.51cto.com/4763600/1864671),还要对mysql的root用户添加密码,而给用户添加或修改密码都是在修改mysql.u

mysql建表设置两个默认CURRENT_TIMESTAMP的技巧

转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/ 业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be onl

MySQL datetime数据类型设置当前时间为默认值

环境:MySQL Sever 5.1 + MySQL命令行工具 问题:MySQL datetime数据类型设置当前时间为默认值 解决: 方法一: 由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的.代替的方案是使用TIMESTAMP类型代替DATETIME类型. TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作.如果有多个TIMESTAMP列,只有第一个自动更新. 自