1、用户授权
授权的意思:a中的mysql可以拿着一个密码去连接b中的mysql;mysql中授权成功就会在mysql.user表中添加一条记录。如果user表中的Host是%,那么代表所有人都可以连接
2、mysql中四种常用日志
1、mysql-slow.log
慢查询日志,当mysql中数据的查询超过10s,数据就会被存放在这个日志中。当我们在进行数据库调优的时候就可以以此为依据。
2、log-err.log
错误日志,mysql在运行过程中出现的错误会被存放在错误日志中
3、mysql.log
操作日志,存放一般的操作日志
4、mysql-bin.log
二进制日志,一般很少用到,但是DBA在需要恢复数据的情况下可能会用到
最大的作用:恢复数据(两个备份之间系统崩溃,这个之间的数据是没有备份的,这些数据的恢复就需要二进制文件)
3、操作二进制文件
开启二进制日志,在my.ini中添加红色框中的语句
查看日志:show variables like "%log%";
重新生成新的日志文件:flush logs;
查看最后一个bin日志:show master status;
清空所有bin-log日志:reset master;
4、mysql的bin-log日志恢复
备份完成之后过了一一小时数据库崩溃;一小时之前的数据是能够恢复的,那么这一小时的数据如何恢复
/user/local/mysql/bin/mysqlbinlog --no-default mysql-bin.000002 |/user/local/mysql/bin/mysql -uroot -p123 test;
语句解释:
mysql-bin.000002:二进制文件名称
test:恢复到的数据库
5、主从复制
主从复制就是数据库之间的同步。而他的本质就是讲主服务器的bin-log日志文件拷贝到从服务器,进行数据恢复
主从复制前提:从服务器有一定的权限能够从主服务器拿到bin-log日志
作用:
1. 主服务器出现问题,可快速切换到从服务器提供服务
2. 可以在从服务器上执行查询操作,降低主服务器的访问压力
3. 可以在从服务器上执行备份,以避免备份期间影响主服务器的服务
步骤:
主服务器配置
1. 登录mysql数据库
mysql>mysql -uroot -p test
2. 给从服务器设置授权用户
mysql>grant all slave on *.* to user@192.168.24.139 identified by "pass";
3. 修改主数据库服务器的配置文件my.cof,打开binlog,并设置server-id的值
log-bin=mysql-bin
server-id=1
4. 在主服务器上设置读锁定有效,确保没有数据库操作,以便获得一个一致性的快照(选做)
mysql>flush tables with read lock;
5. 查看主服务器上当前的二进制日子名和偏移量值
mysql>show master status;
6. 目前主数据库服务器已经停止了更新操作,生成主数据库的备份,备份的方式有两种
6.1 cp全部的数据
6.2 mysqldump备份数据方法
如果主数据库的服务可以停止,那么直接cp数据文件应该是最快的生成快照的方法
7. 主数据库备份完毕后,主数据库可以恢复复写操作,剩下的操作只需要在从服务器上去执行
mysql>unlock tables;
8. 把主数据库的一致备份恢复到从数据库上,把以上的压缩包解压后放到响应的目录即可
从服务器配置
1. 修改从数据库的server-id,注意server-id的值必须是唯一的,不能和主数据库的配置相同,如果有多个服务器,每个从服务器必须有自己唯一的server-id值。
2. 连接主服务器
2.1 在从服务器上的配置文件中:
server-id=2
master-host=192.168.10.1
master-user=user
master-password=pass
master-port=3306
log-bin=mysql-bin
2.2 重新启动mysqld服务
pkill mysqld
/user/local/mysql/bin/mysqld_safe --user=mysql&
2.3 查看相应的主从复制进程列表有两种:
1. processlist
mysql>show processlist\G
2. status
mysql>show slave status\G
如出现:
Slava_IO_Running :Yes
Slave_SQL_Running:Yes