前言:本文是学习网易微专业的《python全栈工程师》 中的《服务器运维开发工程师》专题的课程笔记,欢迎学习交流。同时感谢老师们的精彩传授!
一、课程目标
- 服务器帐号管理
mysql
日志配置- 数据库备份与恢复
二、详情解读
2.1.服务器帐号管理
2.1.1.用户授权(DCL
)
对已存在用户授权:
mysql>>>grant privileges_type on dbname.tablename to username@host
创建新用户并授权:
mysql>>>grant privileges_type on dbname.tablename to username@host identified by 'password'
privileges_type
说明:
参数 | 说明 |
---|---|
all privileges | 所有权限 |
select | 读取权限 |
delete | 删除权限 |
update | 更新权限 |
create | 创建权限 |
drop | 删除数据库、数据表权限 |
2.1.2.用户管理
例子1:为已存在的用户创建可以操作mycms
的所有权限
mysql>>>grant all privileges on mycms.* to lxp@localhost
例子2:创建新用户wxp
,只能本地localhost
访问,拥有对mycms
的users
表查询操作:
mysql>>>grant select on mycms.users to wxp@localhost identified by '123456'
2.2.日志配置
2.2.1.日志类型与配置
日志类型:
1、错误日志 - 记录数据库启动与停止,以及运行过程中发生的错误。
2、二进制日志 - 记录了所有 ddl
与dml
的语句,不包括select
语句,即数据发生变化的过程。
3、通用日志 - 记录了客户端的所有语句,一般情况下不开启。
4、慢查询日志 - 记录了数据库查询超过一定时间的语句。
日志配置:
# my.cnf
# 开启通用日志
general_log = 1
# 通用日志地址
general_log_file = /usr/local/mysql/logs/general.log
# 开启慢查询日志
slow_query_log = 1
# 慢查询日志地址
slow_query_log_file = /usr/local/mysql/logs/slow.log
# 慢查询阀值
long_query_time = 5
log_output = FILE
# 二进制,二进制日志是备份里非常重要的日志,需要配置好,防止数据库崩溃,无法恢复数据。
--log-bin = "server_1_bin"
server_id = 1
2.3.数据库备份
数据库备份是日常运维的一部分,很多数据需要定期的备份,比如一天一备份,或者一周一备份,完全看数据库更改的频度。如果希望数据库备份越接近越好,则需要频繁地备份;如果数据库没有什么访问量,则可以一周备份一次。
通常是使用一个定时任务来完成备份。一般在做数据库迁移或者升级时,都需要提前进行数据库备份。防止数据库迁移或升级失败时无法恢复数据。
数据库备份使用mysqldump
命令:
1、备份database
库的tablename
表
shell>>> mysqldump -u account -p database tablename1 tablename2 > mycms.sql
示例:
1、备份mycms
库的users
表
shell>>> mysqldump -u root -p mycms users > mycms.sql
2、备份database
库中所有表
shell>>>mysqldump -u -root -p mycms > mycms.sql
说明:
1)、shell
表示:上面所有的命令都是在shell
终端中执行的,而不是在mysql
客户端中执行的。
2)、最后的>
表示:将数据备份到当前目录下的mycms.sql
文件中,也可以备份到指定目录下的文件中。
备份多个数据库:
1、备份database
库的tablename
表
shell>>>mysqldump -u account -p --databases database1 dtabase2 > datafile.sql
示例:
1、备份mycms,test
数据库
shell>>>mysqldump -u root -p --databases mycms test > my.sql
2、备份database
库中所有库
shell>>>mysqldump -u root -p --all-databases > mycms.sql
2.4.数据备份恢复
2.4.1.数据库备份与恢复注意事项
备份时应当注意,备份期间,数据不应该发生变化,以保证数据一致性:
mysqldump -u -p -l -F
在参数上加上 -l
,备份期间只能读不能写。
在参数上加上-F
,生成新的日志,这样在恢复数据时,可以恢复备份之后的数据
2.4.2.完全恢复
完全恢复数据分为两步:
Step1
- 将备份文件中的数据导入数据库:
mysql dbname < backupfile -u account -p
Step2
- 恢复备份之后到当前的数据(二进制日志):
mysqlbinlog binlog文件| mysql dbname -u root -p
2.5.基于时间点恢复
如果二进制日志中记录了一些误操作,那么基于日志恢复,也会执行这些误操作,所以无法恢复误操作。所以必须跳过误操作:
1.mysqlbinlog --stop-datetime="......" logfile|mysql -u -p
2. mysqlbinlog --start-dastetime="......" logfile|mysql -u -p
三、课程小结
- 01 用户授权
- 02 日志配置
- 03 数据备份
- 04 日志时间点恢复