十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
用時間戳來計算
創(chuàng)新互聯(lián)建站專注于姚安企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站建設(shè)。姚安網(wǎng)站建設(shè)公司,為姚安等地區(qū)提供建站服務(wù)。全流程按需制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
SELECT?(UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2015-04-20?15:12:12'))/60;
也就是得到兩個時間相差的秒數(shù),然后除60得到分種。
00:00:00本來就是在23:59:59和00:00:01之間,本來就應(yīng)該返回true啊,你說的正常比較是false的結(jié)論是從哪來的?
要實事求是。
希望能幫到你,望采納。
linux下配置mysql主從同步的步驟
一、主機環(huán)境
主機:
master操作系統(tǒng):rhel6.0
IP:172.16.0.100
MySQL版本:5.1.47
從機:
slave操作系統(tǒng):rhel6.0
IP:172.16.0.200
MySQL版本:5.1.47
二、創(chuàng)建數(shù)據(jù)庫
分別登錄master機和slave機的mysql:mysql –u root –p
創(chuàng)建數(shù)據(jù)庫:create database repl;
三、master機和slave機的相關(guān)配置
1、修改master機器中mysql配置文件my.cnf,該文件在/etc目錄下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
binlog-do-db=repl //需要同步的數(shù)據(jù)庫,如果沒有本行,即表示同步所有的數(shù)據(jù)庫
binlog-ignore-db=mysql //被忽略的數(shù)據(jù)庫
在master機上為slave機添加一同步帳號
grant replication slave on *.* to 'replication'@'172.16.0.200' identified by '123456';
重啟master機的mysql服務(wù):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]字段下添加如下內(nèi)容
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 //同步的數(shù)據(jù)庫,不寫本行 表示 同步所有數(shù)據(jù)庫
然后重啟slave機的mysql
在slave機中進入mysql
mysqlstart slave;
mysqlshow slave status\G;
如果Slave_IO_Running、Slave_SQL_Running狀態(tài)為Yes則表明設(shè)置成功。
這時 再執(zhí)行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,說明配置成功。
五、測試主從服務(wù)器是否能同步
在主服務(wù)器上面新建一個表,必須在repl數(shù)據(jù)下
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)
在從服務(wù)器查看是否同步過來
mysql use repl;
Database changed
mysql select * from test;
+------+------+
| id | name |
+------+------+
| 1 | zaq |
| 1 | xsw |
+------+------+
2 rows in set (0.00 sec)
說明已經(jīng)配置成功。
四、出現(xiàn)的問題
1. 當(dāng)在執(zhí)行start slave這條命令時,系統(tǒng)提示
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO,
執(zhí)行show slave status;又提示Empty set (0.00 sec)
原因:slave已經(jīng)默認(rèn)開啟,要先關(guān)閉再開啟
執(zhí)行 slave stop;
再執(zhí)行
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、出現(xiàn)錯誤提示 :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中創(chuàng)建slave遠(yuǎn)程連接訪問時候的登錄密碼一定要設(shè)置對。
2.停止slave上的mysqld服務(wù),從服務(wù)器上刪除掉所有的二進制日志文件,包括一個數(shù)據(jù)目錄下的master.info文件和hostname-relay-bin開頭的文件,然后啟動slave上的mysqld服務(wù)。
master.info::記錄了Mysql主服務(wù)器上的日志文件和記錄位置、連接的密碼。
3.slave上Slave_SQL_Running: No ,提示某個表定義不正確
解決方法:
清空drop掉master和slave上的已經(jīng)存在所有表,然后從master庫上導(dǎo)入新的數(shù)據(jù)即可。
Mysql中經(jīng)常用來存儲日期的數(shù)據(jù)類型有三種:Date、Datetime、Timestamp。
Date數(shù)據(jù)類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為“YYYY-MM-DD”。支持的時間范圍為“1000-00-00”到“9999-12-31”。
Datetime類型:存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式為 “YYYY-MM-DD HH:MM:SS”。支持的時間范圍是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
Timestamp類型:也是存儲既有日期又有時間的數(shù)據(jù)。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
所有不符合上面所述格式的數(shù)據(jù)都會被轉(zhuǎn)換為相應(yīng)類型的0值。(0000-00-00或者0000-00-00 00:00:00)
mysql中,查詢數(shù)據(jù)庫中兩個時間段之間的數(shù)據(jù)有如下兩種方法:
select * from 表名 where 列名'時間段1' and 列名'時間段2'
select * from 表名 where 列名 between '時間段1' and '時間段2'
執(zhí)行結(jié)果分別如下:
拓展資料:
數(shù)據(jù)庫簡介
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載并根據(jù)個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴“my”已經(jīng)有10年以上,而且不管怎樣,MySQL AB創(chuàng)始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發(fā)者在內(nèi)也不知道。
MySQL的海豚標(biāo)志的名字叫“sakila”,它是由MySQL AB的創(chuàng)始人從用戶在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲斯威士蘭的開源軟件開發(fā)者Ambrose Twebaze提供。根據(jù)Ambrose所說,Sakila來自一種叫SiSwati的斯威士蘭方言,也是在Ambrose的家鄉(xiāng)烏干達(dá)附近的坦桑尼亞的Arusha的一個小鎮(zhèn)的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導(dǎo)致很多人都了解到這個數(shù)據(jù)庫。它的歷史也富有傳奇性。