mysql-日志文件mysql-bin文件清除方法

默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题。 首先要说明一下,这些文件都是mysql的日志文件,如果不做主从复制的话,基本上是没用的,虽然没用,但是不建议使用rm命令删除,这样有可能会不安全,正确的方法是通过mysql的命令去删除。 mysql -u root -p Enter password:Welcome to the MySQL monitor.Commandsendwith;or \g.YourMySQL connection id is2819416Server version:5.5.24-0ubuntu0.12.04.1-log (Ubuntu)Copyright(c)2000,2011,Oracleand/or its affiliates.All rights reserved.Oracleis a registered trademark of OracleCorporationand/or its affiliates.Other names may be trademarks of their respective owners.Type'help;'or'\h'for help.Type'\c' to clear the current input statement. mysql> reset master;Query OK,0 rows affected (3 min 37.65 sec) 其实关键的命令就是reset master;这个命令会清空mysql-bin文件。 另外如果你的mysql服务器不需要做主从复制的话,建议通过修改my.cnf文件,来设置不生成这些文件,只要删除my.cnf中的下面一行就可以了。 log-bin=mysql-bin 如果你需要复制,最好控制一下这些日志文件保留的天数,可以通过下面的配置设定日志文件保留的天数: expire_logs_days =7 表示保留7天的日志,这样老日志会自动被清理掉。

December 2, 2017 · 1 min · ZhaoGuibin

centos7下使用yum安装mysql数据库

CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。 1 . 下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2 . 安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。 3 . 安装mysql sudo yum install mysql-server 根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。 4 . 重置密码 重置密码前,首先要登录 mysql -u root 登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户: sudo chown -R root:root /var/lib/mysql 然后,重启服务: service mysqld restart 接下来登录重置密码: mysql -u root mysql > use mysql; mysql > update user set password=password('123456') where user='root'; mysql > exit;

December 2, 2017 · 1 min · ZhaoGuibin

主从复制时报错:ERROR-1794-HY000-Slave……

centos 6.5 mysql5.7 在从库作stop slave时报: error: ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log. 经分析,需要: 删除5张表,并重新导入脚本 use mysql drop table slave_master_info; drop table slave_relay_log_info; drop table slave_worker_info; drop table innodb_index_stats; drop table innodb_table_stats; source /usr/coolpad/mysql/share/mysql_system_tables.sql (2)重新启动数据库 注:这一步是必须的,否则无法正常配置双主架构。

December 2, 2017 · 1 min · ZhaoGuibin

mysql实现主从复制

准备工作: 1.两个虚拟机:我这里用的是CentOS5.5,IP地址分别是192.168.1.101 和192.168.1.105; 101做主服务器,105做从服务器(都已经安装相同版本的Mysql); 2.本机环境:Nginx+PHP+MySQL 好了,现在开始吧,来看看这听起来高大上的主从复制是怎么回事。 原理:mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是 B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作 全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。 扩展:MYSQL还有一种日志叫做:慢日志 可以设置一个时间,那么所有执行时间超过这个时间的SQL都会被记录下来。这样就可以通过慢日志快速的找到网站中SQL的瓶颈来进行优化。 实现步骤: 1.首先修改mysql的配置文件,使其支持二进制日志功能。 打开主服务器的mysql配置文件:my.conf vim /etc/my.cnf 加入如下三行代码: 参数解释: log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed server-id=101 //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id 配置完成,:wq 保存,重启mysql 重启mysql命令:# service mysqld restart 同样的,进入从服务器,配置从服务器的my.cnf,重复步骤1即可, 唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=105;其他两项是一样的,保存,并重启mySQL; 2.在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。 进入主服务器的mysql界面, mysql -u root -p 111111 //我这里mysql账号是root,密码是111111 在mysql操作界面下,输入下面一行命令: GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '111111'; 3.查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变). 4.设置从服务器 进入从服务器mysql mysql -u root -p111111 关闭slave(如果你以前配置过主从的话,一定要先关闭) stop slave; 开始配置: 输入下面代码即可: 参数解释: MASTER_HOST : 设置要连接的主服务器的ip地址 MASTER_USER : 设置要连接的主服务器的用户名...

December 2, 2017 · 1 min · ZhaoGuibin

DDL、DML和DCL的区别与理解

DML、DDL、DCL区别 . 总体解释: DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL ...

2 min · ZhaoGuibin

解决MySQL出现 Waiting for table metadata lock 问题

前几天修改数据库表,结果数据库就卡死了,通过命令 show processlist 发现 Waiting for table metadata lock状态的连接,幸好这个状态的连接不多,kill掉这些连接就可以了。 ...

1 min · ZhaoGuibin