新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用时间戳来计算
创新互联建站专注于姚安企业网站建设,响应式网站开发,商城网站建设。姚安网站建设公司,为姚安等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2015-04-20 15:12:12'))/60;
也就是得到两个时间相差的秒数,然后除60得到分种。
00:00:00本来就是在23:59:59和00:00:01之间,本来就应该返回true啊,你说的正常比较是false的结论是从哪来的?
要实事求是。
希望能帮到你,望采纳。
linux下配置mysql主从同步的步骤
一、主机环境
主机:
master操作系统:rhel6.0
IP:172.16.0.100
MySQL版本:5.1.47
从机:
slave操作系统:rhel6.0
IP:172.16.0.200
MySQL版本:5.1.47
二、创建数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl;
三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
binlog-ignore-db=mysql //被忽略的数据库
在master机上为slave机添加一同步帐号
grant replication slave on *.* to 'replication'@'172.16.0.200' identified by '123456';
重启master机的mysql服务:service mysqld restart
用show master status 命令看日志情况
mysqlshow master status;
+-----------------+------------+-------------------+-----------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+------------+-------------------+-----------------------+
| log.000003 | 98 | repl | mysql |
+-----------------+------------+-------------------+-----------------------+
1 row in set (0.00 sec)
2、修改slave机中mysql配置文件
同样在[mysqld]字段下添加如下内容
server-id=2
master-host=172.16.0.100
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
然后重启slave机的mysql
在slave机中进入mysql
mysqlstart slave;
mysqlshow slave status\G;
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。
这时 再执行show slave status\G
显示如下:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.222
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: log.000003
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 229
Relay_Master_Log_File: log.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 229
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
Slave_IO_Running: Yes Slave_SQL_Running: Yes
信息中如上两行都为Yes,说明配置成功。
五、测试主从服务器是否能同步
在主服务器上面新建一个表,必须在repl数据下
mysql use repl
Database changed
mysql create table test(id int,name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql insert into test values(1,'zaq');
Query OK, 1 row affected (0.00 sec)
mysql insert into test values(1,'xsw');
Query OK, 1 row affected (0.00 sec)
mysql select * from test;
+------+------+
| id | name |
+-------+------+
| 1 | zaq |
| 1 | xsw |
+-------+------+
2 rows in set (0.00 sec)
在从服务器查看是否同步过来
mysql use repl;
Database changed
mysql select * from test;
+------+------+
| id | name |
+------+------+
| 1 | zaq |
| 1 | xsw |
+------+------+
2 rows in set (0.00 sec)
说明已经配置成功。
四、出现的问题
1. 当在执行start slave这条命令时,系统提示
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO,
执行show slave status;又提示Empty set (0.00 sec)
原因:slave已经默认开启,要先关闭再开启
执行 slave stop;
再执行
change master to master_host='172.16.0.200',master_user='repl',master_password='123456', master_log_file='log.000003' ,master_log_pos=98;
2、出现错误提示 :Slave_IO_Running:NO
mysql的error日志中信息:
Slave I/O: error connecting to master 'replication@172.16.0.100:3306' - retry-time: 60 retries: 86400, Error_code: 1045
解决方法
1.在主mysql中创建slave远程连接访问时候的登录密码一定要设置对。
2.停止slave上的mysqld服务,从服务器上删除掉所有的二进制日志文件,包括一个数据目录下的master.info文件和hostname-relay-bin开头的文件,然后启动slave上的mysqld服务。
master.info::记录了Mysql主服务器上的日志文件和记录位置、连接的密码。
3.slave上Slave_SQL_Running: No ,提示某个表定义不正确
解决方法:
清空drop掉master和slave上的已经存在所有表,然后从master库上导入新的数据即可。
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-00 00:00:00)
mysql中,查询数据库中两个时间段之间的数据有如下两种方法:
select * from 表名 where 列名'时间段1' and 列名'时间段2'
select * from 表名 where 列名 between '时间段1' and '时间段2'
执行结果分别如下:
拓展资料:
数据库简介
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。