Ubuntu

MySql 沒有在自定義 Ubuntu AMI 上獲取對 my.cnf 文件的更改。我該如何解決?

  • June 17, 2011

我從正在執行的 EC2 Ubuntu 實例創建了一個 AMI。然後我把它提出來,MySql 在這個複制的實例上執行的方式不同。

  1. 我的 my.cnf 文件的更改沒有被拾取。

2)我無法查詢我的數據庫,因為它給了我以下錯誤:

ERROR 1286 (42000): Unknown table engine 'InnoDB'

我猜MySql沒有正確配置?我是MySql的新手,所以你能告訴我我做錯了什麼嗎?

提前致謝。

我了解到(經過幾個小時的故障排除後),如果您的設置出現問題,則不會更新任何設置。

例如。就我而言,複製被破壞了。然而,而不是

Slave_IO_Running: No
Slave_SQL_Running: No

顯示為“否”,主控主機的名稱也沒有更新,我在 .cnf 文件中更改了它。此外,我的 .cnf 文件中沒有設置 skip-innoDB,但仍然沒有啟用 innoDB。這讓我懷疑問題與 .cnf 文件有關。

然而,事實證明,這是兩件不同的事情。

由於記憶體不足,InnoDB 無法啟動。我分配的記憶體超過了提供的新 EC2 實例。這是創建圖像的課程:注意您正在創建的實例的大小。

第二個問題是複制沒有出現。這是因為我沒有:

復位從機

然後適當修改:

MASTER_LOG_POS

我在另一個 SF 問題上得到了答案:

為什麼 MySQL 複製如此復雜?

很棒的指南作為答案發佈在那裡。

我在位於以下位置的 SQL 日誌中獲得了指向所有這些的指針:

/var/log/mysql/error.log

它有以下條目:

InnoDB: Error: cannot allocate 1048592384 bytes of

InnoDB: memory with malloc! Total allocated memory

InnoDB: by InnoDB 38079360 bytes. Operating system errno: 12

InnoDB: Check if you should increase the swap file or

InnoDB: ulimits of your operating system.

InnoDB: On FreeBSD check you have compiled the OS with

InnoDB: a big enough maximum process size.

InnoDB: Note that in most 32-bit computers the process

InnoDB: memory space is limited to 2 GB or 4 GB.

InnoDB: We keep retrying the allocation for 60 seconds...

InnoDB: Fatal error: cannot allocate the memory for the buffer pool

110616 18:41:58 [ERROR] Plugin 'InnoDB' init function returned error.

110616 18:41:58 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

110616 18:41:58 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay- log=ip-xxxx-relay-bin' to avoid this problem.

110616 18:41:58 [ERROR] Failed to open the relay log 'xxxx' (relay_log_pos 251)

110616 18:41:58 [ERROR] Could not find target log during relay log initialization

110616 18:41:58 [ERROR] Failed to initialize the master info structure

我真的希望有一天這對某人有所幫助!

檢查 /var/log/syslog 在 MySQL 啟動期間發生的任何錯誤。可能是您的 /etc/mysql/my.cnf 文件包含一個 skip-innodb 語句,這將禁用 InnoDB 表。

引用自:https://serverfault.com/questions/281194