Mysql

mysqld_safe 版本與 mysqld 不同?

  • March 6, 2013

mysqld套接字與mysqld伺服器的版本不同是否有問題?我在啟動期間在我的 mysqld 日誌中註意到了這一點

120420 19:30:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120420 19:30:06  InnoDB: Initializing buffer pool, size = 8.0M
120420 19:30:06  InnoDB: Completed initialization of buffer pool
120420 19:30:06  InnoDB: Started; log sequence number 0 44233
120420 19:30:06 [Note] Event Scheduler: Loaded 0 events
120420 19:30:06 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.61'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

然而,當我顯示變數時,我得到了這個

顯示變數,如“%version%”;

+-------------------------+-------------------------------------------+
| Variable_name           | Value                                     |
+-------------------------+-------------------------------------------+
| innodb_version          | 5.5.30                                    |
| protocol_version        | 10                                        |
| slave_type_conversions  |                                           |
| version                 | 5.5.30-cll                                |
| version_comment         | MySQL Community Server (GPL) by Atomicorp |
| version_compile_machine | x86_64                                    |
| version_compile_os      | Linux                                     |
+-------------------------+-------------------------------------------+
7 rows in set (0.00 sec)

根據 golimar 的問題,我執行了一個

ps到

我看到了這個

mysql 633 31.4 33.5 11942788 5452172 ? SNl 08:18 101:31 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib64/mysql/plugin –user=mysql – log-error=/var/lib/mysql/host.reviewcritical.com.err –open-files-limit=4096 –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/ lib/mysql/mysql.sock –port=3306

根 32674 0.0 0.0 108292 1576 ?SN 08:18 0:00 /bin/sh /usr/bin/mysqld_safe –datadir=/var/lib/mysql –socket=/var/lib/mysql/mysql.sock –pid-file=/var/執行/mysqld/mysqld.pid –basedir=/usr –user=mysql

眾所周知,mysqld_safe和mysqld有很大的不同

mysqld:數據庫伺服器實例守護程序

mysqld_safe:檢查和設置mysqld執行環境的控製程序。mysqld 執行檔實際上是在循環中啟動的。當 mysqld 終止時,mysqld_safe 程序會檢查返回結果並決定是否

  • mysqld 正常終止(故意關閉),離開 mysqld_safe

  • mysqld 異常終止(崩潰或殺死 mysqld 的 -9)

    • 循環返回,mysqld 重試失敗,離開 mysqld_safe
    • 循環回來,mysqld 啟動,停留在 mysqld_safe 循環中

為什麼 mysqld 和 mysqld_safe 使用相同的 MySQL 版本很重要?

讓我這樣說明:Percona Server 有時在 mysqld_safe 中具有用於操作作業系統的附加功能。例如,我numactl --interleave=all在 Percona Server 中看到了 mysqld_safe。如果該行不存在,Percona Server 的 mysqld 可能會遇到記憶體和交換問題。

Oracle 的(呃,仍然討厭這樣說)mysqld 和 mysqld_safe 可能會出現同樣的情況。如果 mysqld_safe 較舊,則可能會從一個主要版本到另一個將被刪除的改進。

與其探索使用舊的 mysqld_safe 和新的 mysqld(反之亦然)的可能性,不如讓你的生活變得簡單,從頭開始重新安裝 MySQL 5.5.30。

在此之前,請執行

updatedb
locate mysqld_safe

在Linux下看看有沒有兩個纏綿。如果有,把路徑弄直。否則,您可能需要重新安裝 MySQL 5.5.30。

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