数据库配置管理
用户以及密码管理
新建用户:create user ‘username’@‘%’ identified by ‘password’
删除用户:drop user ‘zhangsan’@‘%’
重命名用户:rename user ‘old_user’@'host' to 'new_user'@'host
设置当前登录用户的密码:set password=password('123456')
设置其他用户的密码:set password='username'@‘host’=password('123456')
补充:破解root密码
1.停止服务
service mysqld stop
2.使用mysqld_safe结合skip-grant-tables启动数据
mysqld_safe --skip-grant-tables &
3.无密码登录数据库,更新root密码
update mysql.user set authentication_string=password('123456') where user='root';
4.刷新数据库(修改的内容提取到内存马上生效)
flush privileges;
数据库日志管理
日志管理(六种不同的日志)
文件位置(源码安装模板的存放位置):/etc/my.cnf
1.错误日志
作用:记录启动、运行或停止时出现的问题,一般也会记录警告信息
[mysqld]下编辑开启
log_error = /usr/local/mysql/data/mysql.err \\指定日志的存放位置
或者log_warnings = 0/1 \\启用警告信息
2.通用查询日志
作用:记录建立的客户端连接和执行的语句
开启之后对服务器的压力很大(一般不开启,默认不开启)
general_log = ON/OFF \\启动或关闭查询日志,默认为关闭
general_log_file = /usr/local/mysql/data/mysql.log \\指定查询日志存放位置
log_output=TABLE\FILE
补充:为了调试数据库可以开启查询日志,生产环境不建议开启查询日志
3.慢查询日志
作用:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询,可以帮我们定位服务器性能问题
slow_query_log = ON/OFF \\开启或关闭慢查询日志,默认是关闭的
slow_query_log_file = /usr/local/mysql/data/mysql_slow.log \\指定查询日志存放位置
log_query_time = 10 \\定义慢查询日志的记录市场,默认为10秒
4.二进制日志
精确的记录了用户对数据库中的数据进行操作的命令和操作的数据对象
做数据增量备份,提供数据基于时间点的恢复,还可以主从复制,主服务器开启
5.中继日志
作用:从主服务器的二进制文件中复制而来的时间,并保存为的日志文件
relay-log = master-relay-bin
reay-log-index = master-relay-bin.index
6.事务日志(存储引擎)
作用:记录lnnoDB等支持事务的存储引擎执行事务时产生的日志
事务性存储引擎用于保证(ACID)原子性、一致性、隔离性和持久性;其不会立即写到数据文件中,而是写到事务日志中
事务(MySQL事务默认是自动提交的,当SQL语句提交时事务便自动提交)
是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行
特点:原子性、一致性、隔离性、持久性
事务开始:begin;
提交:commit;
回滚:rollback; \\执行之后回滚到begin位置,之后的操作全部不作数
定义回滚点:savepoint si; \\定义了之后不会直接回滚到begin
设置事务为手动提交(关闭之后需要手动提交):set autocommit=0/1; \\0为关闭自动提交,1为开启
查看事务是否为自动提交:SHOW VARIABLES like '%autocommit%'
查看数据库当前进程:show processlist;
查看当前运行的所有事务:select * from information_schema.INNODB_TRX;
查看当前出现的锁:select * from information_schema.INNODB_LOCKs;