MySQL运维基础篇之基础安全维护及对表的操作

本文零散的分享一点关于MySQL运维基础知识,后续会不断更新:

一、MySQL基础安全

1、将启动程序权限设置为700,属主和组设置为mysql

2、为mysql超级用户root设置密码

3、删除无用的用户

使用安全脚本mysql_secure_installation

4、授权用户对应的主机不要用%,权限不要给all,最小化授权,从库只给select权限。

5、不要给一个用户管所有的库,尽量专库专用户。

6、清理mysql操作日志文件~/.mysql_history日志文件中存放操作数据库的记录,安全起见要定时删除。

7、禁止开发获取到web连接的密码,禁止开发连接操作生产对外的库。

8、服务器禁止设置外网IP。

9、mysql的备份脚本设置为700权限,属主与组为root。

二、生产环境关闭MySQL的命令

1、强制关闭MySQL服务:

(1)killall mysqld

(2)pkill mysqld

(3)killall -9 mysqld

(4)kill -9 pid

2、美丽的关闭数据库

(1)mysqladmin -uroot -p shutdown

(2)/etc/init.d/mysqld stop

三、如何找回丢失的mysql root用户密码

1、停止服务/etc/init.d/mysqld stop
2、使用--skip-grant-tables启动mysql,忽略登陆验证

mysqld safe --skip-grant-tables --user=root

3、登陆root用户修改密码

4、重启mysql

四、数据库管理应用

1、创建数据库,注意库名不能以数字开头,大小写不敏感;create database wy

2、查看库的字符集及校对规则show character set;

五、数据库表操作

1、MySQL表字符类型

(1)数字 类型

(2)日期和时间类型

(3)字符串类型

2、字符类型总结

(1)INT型:正常大小整数类型

(2)CHAR型:定长字符串类型,当存储时,总是用空格占满到右边指定长度

(3)VARCHAR型:变长字符串类型

3、创建索引

数据库索引就像书的目录一样,如果在字段上建立了索引,那么以索引列为查询条件的时候可以加快查询速度,查询数据库按主键查询是最快的,每个表只能有一个主键,但是可以有多个普通索引列。

(1)

访问数据量很大时,不适合建立索引,会影响用户访问,尽量选择业务低谷时建立索引。

(2)对表的前n个字符创建普通索引

当遇到表中比较大的列时,列内容的前n个字符在所有内容已进阶唯一时,这是可以对列的前n个字符建立索引,而无需对整个列建立索引,这样可以节省创建索引所占用的系统空间,以及降低读取和更新维护索引消耗的系统资源。

(3)为表的多个字段创建联合索引

(4)为表的多个字段前n个字符创建联合索引

(5)索引列的创建及生效条件

1)既然索引可以加快查询速度,那么就给所有列创建索引吧

不可以,因为索引不但占用系统空间,而且更新数据时还需要维护索引数据,因此,索引是一把双刃剑,并不是越多越好,数十行到几百行的表就没必要建立索引,更新频繁,读取比较少的表要建立索引。

2)需要在哪些列上创建索引

select user,host from mysql.usr where password=....索引一定要创建在where后的条件列上,而不是select后的选择数据列上,另外,我们要尽量选择唯一值多的大表上的列建立索引

4、对表的操作

(1)向表中批量插入数据

(2)根据指定条件查看表的部分数据

1)查看test2表的前两行数据

2)查看第一行的后两行数据

(3)多表查询

1)等值查询

select stu.Sno,stu.Sname,course.Cname,sc.Grade from stu,course,sc where  stu.Sno=sc.Sno and course.Cno=sc.Cno order by Sno;

2)非等值查询

(4)使用explain查看select语句执行计划

(5)修改表中特定数据

1)通过update删除伪数据,Oracle对应的伪列为rowid,rownumber

(6)增删表的字段

将指定的列添加到指定列后

(7)修改字段类型

(8)修改表名

(9)修改列名

猜你喜欢

转载自blog.csdn.net/weixin_42774383/article/details/81771431
今日推荐