2 Star 1 Fork 0

zhrun8899 / learning-notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mysql.md 3.54 KB
一键复制 编辑 原始数据 按行查看 历史

显示Mysql 进制日志 mysql> show binary logs; MySQL bin-log如何删除清理: 1.如果没有主从复制,可以通过reset master的方式,重置数据库日志,清除之前的日志文件: reset master; 2.但是如果存在复制关系,应当通过PURGE的方式来清理bin日志,语法如下: PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date' eg:purge master logs before date_sub(current_date,interval 5 DAY); PURGE MASTER LOGS TO 'mysql-bin.000004' PURGE MASTER LOGS TO 'mysql-bin.010'; PURGE MASTER LOGS BEFORE '2014-08-30 00:00:00'; //清理该日期之前的数据 PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); //清除3天前的

mysql 二进制日志清理 1.状态的查看: mysql> show variables like '%log_bin%'; 2.查看日志文件 mysql> show binary logs; 3.清理所有5天前的日志 mysql> purge master logs before date_sub(current_date,interval 5 DAY); 4.设置日志自动过期: 修改my.cnf 或my.ini [mysqld] log-bin=mysql-bin binlog_format=mixed server-id = 1 binlog-do-db=mvc log-bin-trust-function-creators=1 expire_logs_days=5 需要重新启动数据库 5.进行二进制日志的切换,默认情况下当二进制日志写满了或者数据库重启了才会进行切换,但是也可以手工的进行切换的动作 mysql> flush logs;

说明:二进制日志自动删除/过期的天数。默认值为0,表示“没有自动删除” 例如:expire_logs_days = 5 //表示日志保留5天,超过5天则设置为过期的

PS:关于过期日志自动删除补充: Q:在什么时间会删除过期日志? A:每次进行 LOG flush的时会自动删除过期的日志。

Q:什么时间才能触发log flush,手册上的解释为: A:1. 重启;   2. BINLOG文件大小达到参数max_binlog_size限制;   3. 手工执行命令。 flush logs

6、其他参数: binlog-cache-size=100m 设置二进制日志缓存大小 sync-binlog=N(每个N秒将缓存中的二进制日志记录写回硬盘,默认值为0。不过,你经常会陷入group commit函数与I/O之间二选一的矛盾。如果在replication环境中,由于考虑到耐久性与一致性,则需要设置1。同时,还需要设置innodb_flush_log_at_trx_commit=1以及innodb-support-xa=1默认开启;) log_bin_trust_function_creators变量解释  在MySQL主从复制机器的master的数据库中创建function,报出如下错误:   Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)   原来是因为在主从复制的两台MySQL服务器中开启了二进制日志选项log-bin,slave会从master复制数据,而一些操作,比如function所得的结果在master和slave上可能不同,所以存在潜在的安全隐患。因此,在默认情况下回阻止function的创建。   有两种办法来解决这一问题 1.将log_bin_trust_function_creators参数设置为ON,这样一来开启了log-bin的MySQL Server便可以随意创建function。这里存在潜在的数据安全问题,除非明确的知道创建的function在master和slave上的行为完全一致。   设置该参数可以用动态的方式或者指定该参数来启动数据库服务器或者修改配置文件后重启服务器。需注意的是,动态设置的方式会在服务器重启后失效。 mysql> show variables like 'log_bin_trust_function_creators'; mysql> set global log_bin_trust_function_creators=1;   另外如果是在master上创建函数,想通过主从复制的方式将函数复制到slave上则也需在开启了log-bin的slave中设置上述变量的值为ON(变量的设置不会从master复制到slave上,这点需要注意),否则主从复制会报错。

mysql 5.7 忘记密码 mysql5.7忘记root密码的操作步骤: 1、 在系统偏好设置中停止MySQL服务。 service mysqld stop 2、执行命令以安全模式启动MySQL: cd /usr/bin ./mysqld_safe --skip-grant-tables 3.注意:需要新开一个窗口 mysql -uroot mysql> update mysql.user set authentication_string=PASSWORD('你的密码') where User='root'; 注意:5.7以下版本执行: update mysql.user set password=PASSWORD('132456') where User='root'; mysql> flush privileges; 4.ps -ef |grep mysqld 5.kill -9 pid 6.service mysqld start 7.重新设置用户

1
https://gitee.com/zhrun8899/learning-notes.git
git@gitee.com:zhrun8899/learning-notes.git
zhrun8899
learning-notes
learning-notes
master

搜索帮助