2016-03-08 78 views
0

我想根據此文檔導入時區:http://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html如何使用xampp填充ubuntu中的mysql數據庫中的區域表

當我試圖通過終端甚至打第一個命令即

mysql_tzinfo_to_sql tz_dir 

它說

There were fatal errors during processing of zoneinfo directory 'tz_dir' 

當我運行:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 

然後返回

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 

操作系統:Ubuntu的

服務器: XAMPP(有MariaDB的)

所以,我不能時區的數據導入到數據庫mysql的區表。

回答

1

今天早上我試圖在我們的生產服務器上使用CentOS填充時區表時也有這個問題。

我通過從我的開發計算機中導出表創建腳本(在Windows上填充表只需要下載表並將它們複製到正確的目錄中)來解決此問題。

我調整了創建腳本一點點,它現在的工作對我來說:

我不能將它張貼在我的答案,因爲腳本是太長。

https://drive.google.com/file/d/0B7iwL5F-hwr_YkItRXk2Z1VZdlE/view?usp=sharing

下面是與註釋版本(但它似乎並不工作,所以使用的版本沒有評論)。

https://drive.google.com/file/d/0B7iwL5F-hwr_dWdjTDREcXNHQmM/view?usp=sharing

腳本應該不會超過幾秒鐘來運行。您可能需要使用root用戶才能運行它。

您可以使用此查詢,以驗證安裝:

SELECT CONVERT_TZ(CURRENT_DATE(),'UTC','America/Montreal'); 

如果返回NULL,而不是一個datetime,就意味着失敗腳本。

良好的成功

+0

謝謝你謝謝你! –

0

There were fatal errors during processing of zoneinfo directory 'tz_dir' 

錯誤消息意味着目錄不能讀取(沒有足夠的訪問權限或不存在的話)。

即使知道mysql_tzinfo_to_sql計劃僅僅是一個工具,一堆的時區文件轉換爲SQL腳本,你可以用它來安裝MySQL的時區,你的任務是:

  • 獲得時區文件
  • 執行mysql_tzinfo_to_sql從這些文件創建一個SQL腳本
  • 在您的mysql數據庫中執行該SQL腳本。

這些步驟可以在不同的計算機上執行,如果您在它們之間傳輸文件。例如,我在mysql安裝未完成的計算機上安裝時區,也就是mysql_tzinfo_to_sql不可用,我也無法安裝它。

在你可以結合以下步驟這樣一個案例:

  • 如果mysql_tzinfo_to_sql不可用計算機到哪裏你的mysql數據庫駐留然後找個地方mysql_tzinfo_to_sql已安裝
  • 的計算機上進行zoneinfo文件夾可在該計算機上使用。它只是一堆文件夾在不同的文件夾中,因此您可以將它們從一臺計算機傳輸到另一臺計算機的gzip文件中。在普通的mysql安裝中,這個文件夾應該存在,但是也許你的安裝不完整,只能從任何地方得到它。
  • 執行mysql_tzinfo_to_sql命令來創建這樣一個SQL腳本:

    mysql_tzinfo_to_sql path-to-your-zoneinfo-folder >install_mysql_zoneinfo.sql

  • 移動創建的SQL腳本到你的mysql數據庫所在的計算機*

  • 執行這樣的腳本:

    mysql --user=root --password=abc123 mysql <install_mysql_zoneinfo.sql

根據需要調整用戶名和密碼,並執行腳本。這將填補時區相關的表用適當的值,你將能夠使用它們:

SELECT convert_tz(NOW(),'UTC','Australia/Melbourne'); 
  • 如果你可以從這裏生成的SQL腳本,則計算機達到MySQL數據庫它足夠要將-h <hostname>命令行參數添加到後續的腳本執行程序,您不必將SQL腳本複製到目標機器。
相關問題