mysql数据库时间不准确_主数据库(mysql)的时间不对
今天早上領(lǐng)導通知我講主數(shù)據(jù)庫的時間不對,Linux的系統(tǒng)時間是對的。怎么回事???難道是我以前更改了系統(tǒng)時間造成??怎么解決呢? 在mysql手冊中有下面這段話: 5.10.8. MySQL服務器時區(qū)支持 MySQL服務器有幾個時區(qū)設置: · 系統(tǒng)時區(qū)。服務器啟動時便試圖確定主機的時區(qū),用它來設置system_time_zone系統(tǒng)變量。 · 服務器當前的時區(qū)。全局系統(tǒng)變量time_zone表示服務器當前使用的時區(qū)。初使值為'SYSTEM',說明服務器時區(qū)與系統(tǒng)時區(qū)相同??梢杂?-default-time-zone=timezone選項顯式指定初使值。如果你有SUPER 權(quán)限,可以用下面的語句在運行時設置全局變量值: · mysql> SET GLOBAL time_zone = timezone; · 每個連接的時區(qū)。每個客戶端連接有自己的時區(qū)設置,用會話time_zone變量給出。其初使值與全局變量time_zone相同,但可以用下面的語句重設: · mysql> SET time_zone = timezone; 可以用下面的方法查詢當前的全局變量值和每個連接的時區(qū): mysql> SELECT @@global.time_zone, @@session.time_zone; timezone 值為字符串,表示UTC的偏移量,例如'+10:00'或'-6:00'。如果已經(jīng)創(chuàng)建并裝入mysql數(shù)據(jù)庫中的時區(qū)相關(guān)表,你還可以使用命名的時區(qū),例如'Europe/Helsinki'、'US/Eastern'或'MET'。值'SYSTEM'說明該時區(qū)應與系統(tǒng)時區(qū)相同。時區(qū)名對大小寫不敏感。 MySQL安裝程序在mysql數(shù)據(jù)庫中創(chuàng)建時區(qū)表,但不裝載。你必須手動裝載。(如果你正從以前的版本升級到MySQL 4.1.3或更新版本,你應通過升級mysql數(shù)據(jù)庫來創(chuàng)建表。參見2.10.2節(jié),“升級授權(quán)表”中的說明)。 如果你的系統(tǒng)有自己的時區(qū)信息數(shù)據(jù)庫(描述時區(qū)的一系列文件),應使用mysql_tzinfo_to_sql程序來填充時區(qū)表。示例系統(tǒng)如 Linux、FreeBSD、Sun Solaris和Mac OS X。這些文件的可能位置為/usr/share/zoneinfo目錄。如果你的系統(tǒng)沒有時區(qū)信息數(shù)據(jù)庫,可以使用本節(jié)后面描述的下載的軟件包。 mysql_tzinfo_to_sql程序用來裝載時區(qū)表。在命令行中,將時區(qū)信息目錄路徑名傳遞到mysql_tzinfo_to_sql并輸出發(fā)送到mysql程序。例如: shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql mysql_tzinfo_to_sql讀取系統(tǒng)時區(qū)文件并生成SQL語句。mysql處理這些語句并裝載時區(qū)表。 mysql_tzinfo_to_sql還可以用來裝載單個時區(qū)文件,并生成閏秒信息。 要想裝載對應時區(qū)tz_name的單個時區(qū)文件tz_file,應這樣調(diào)用mysql_tzinfo_to_sql: shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql 如果你的時區(qū)需要計算閏秒,按下面方法初使化閏秒信息,其中tz_file是時區(qū)文件名: shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql 如果你的系統(tǒng)沒有時區(qū)信息數(shù)據(jù)庫 (例如,Windows或HP-UX),你可以從 http://dev.mysql.com/downloads/timezones.html下載預構(gòu)建時區(qū)表軟件包。該軟件包包含MyISAM時區(qū)表所用的.frm、.MYD和.MYI文件。這些表應屬于mysql數(shù)據(jù)庫,因此應將這些文件放到MySQL服務器數(shù)據(jù)目錄的mysql子目錄。操作時應關(guān)閉服務器。 警告!如果你的系統(tǒng)有時區(qū)信息數(shù)據(jù)庫,請不要使用下載的軟件包。而應使用mysql_tzinfo_to_sql實用工具!否則,MySQL和系統(tǒng)上其它應用程序處理日期時間的方法會有所不同。 上面是mysql手冊中的內(nèi)容,以下是我解決辦法: 方法一 1。在mysql的命令模式下使用 mysql > select CURTIME(); 或 mysql > select now(); 看當前時間是否正確,可以看到mysql當前使用的是那一個時區(qū)的時間。 2。在mysql命令行中更改時區(qū) mysql > SET time_zone = '+8:00'; # 此為北京時,我們所在東8區(qū) mysql> flush privileges; # 立即生效 此時mysql時區(qū)已更改正確,與系統(tǒng)時區(qū)都使用為 Shanghai時間了。 #### 這種方法好像只能在終端上使用,退出終端后時間又會變成原來的,看來只能重啟mysql了。 3。重啟mysql也應沒有問題,此時mysql會主動讀取系統(tǒng)時間。 方法二: 如果mysql數(shù)據(jù)庫可以重啟,直接重啟,mysql應可以立即主動讀取系統(tǒng)時間,如果不行則更改mysql的配置文件(mysql.cnf) 在my.cnf的 [mysqld]區(qū)域中加上 default-time_zone = '+8:00' #此為北京時。
總結(jié)
以上是生活随笔為你收集整理的mysql数据库时间不准确_主数据库(mysql)的时间不对的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu查看和设置环境变量
- 下一篇: 软件工程:结构化软件设计方法 VS 面向