Mysql

在 MariaDB 10.0 上安裝時區數據

  • October 26, 2017

昨天,我在我們的數據庫伺服器上設置了時區(如此所述)。這樣做需要使用mysql_tzinfo_to_sql執行檔。好在伺服器上已經有這個了,時區數據的轉換很順利。

但是,今天我可以看到我們的奴隸正在產生同樣的錯誤。問題是從站似乎沒有mysql_tzinfo_to_sql執行檔。 apt-get告訴我它存在於這些其他包中:

root@slave:~# mysql_tzinfo_to_sql /usr/share/zoneinfo/|mysql -u root mysql
The program 'mysql_tzinfo_to_sql' can be found in the following packages:
* mysql-server-5.5
* mariadb-server-5.5
* mysql-server-5.6
* percona-xtradb-cluster-server-5.5
Try: apt-get install <selected package>

我擔心安裝其中一個(可能會選擇mariadb-server-5.5)會與我們目前安裝的 MariaDB 版本(10.0.17-MariaDB-1~precise-log)衝突。

我應該如何在從站上安裝這個時區數據?

  • 可以從主數據庫輕鬆複製嗎?
  • 我對安裝的擔憂是沒有根據的mariadb-server-5.5嗎?
  • 我錯過了一種完全不同的方法嗎?

我想出了一個解決辦法。這個解決方案的關鍵是我已經有一個系統(主系統),我知道我可以在上面生成時區 SQL。我只是在主伺服器上生成 SQL,將其傳輸到從伺服器,然後執行它!

在大師

user@master [~]# mysql_tzinfo_to_sql /usr/share/zoneinfo/ > timezones.sql

在奴隸

root@slave:~# scp -P2223 user@master:timezones.sql .
user@master's password: 
stdin: is not a tty
timezones.sql                                                                                                                                   100% 4562KB   2.2MB/s   00:02    
root@slave:~# cat timezones.sql | mysql -u root mysql

在奴隸上執行後START SLAVE,一切都很好!

不過,仍然很好奇是否有人回答了我最初提出的問題!

我擔心安裝其中之一(可能會選擇 mariadb-server-5.5)會與我們目前安裝的 MariaDB 版本()衝突。10.0.17-MariaDB-1~precise-log

Ubuntu Precise 發佈於 12.04。太荒謬了,就在你問這個問題的時候。這就是為什麼 MariaDB 的版本太舊了。MariaDB 在 10.0.31 中放棄了對精確的支持。因為您在 Debian/Ubuntu 眼中的非官方 MariaDB 版本上執行,所以不能保證可以與該系統一起使用。

綜上所述,問題本質上是誰打包了你的 MariaDB。您似乎很可能從MariaDB上游獲得它。因此,儘管您有解決方法,但問題最好這樣表述

  • MariaDB 安裝在哪裡mysql_tzinfo_to_sql

顯然它不在您的路徑中,您可以通過以下方式找到它

  1. 執行您通過dpkg -c.
  2. 使用apt-file
  3. 跑步:sudo updatedb; locate mysql_tzinfo_to_sql;

引用自:https://dba.stackexchange.com/questions/143346