mysqlサーバーの起動に失敗しました


28

私はubuntuサーバーを実行しています。(実行中の)mysqlにログインしようとすると、次のエラーが発生しました

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

ただし、mysqld.sockファイルは/var/run/mysqldフォルダー内に存在しません。ps aux | grep mysqlコマンドを実行すると、mysqlサーバーが実行されていないことがわかりました。

次に、を使用してmysqlサーバーを再起動しようとしました

service mysql start
service mysql restart
/etc/init.d/mysql start

ただし、3つのケースすべてで開始プロセスが失敗しました。 /var/log/mysql/mysql.logそして、/var/log/mysql/mysql.errファイルが空になっています。

ただし/var/log/error.log、次の情報が表示されます。

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete

このことができますかどうかを確認:serverfault.com/questions/104014/...
Rinzwind

1
の出力はls /var/lib/mysql/ib_logfile*何ですか?
jobin 14

LS:アクセスすることはできませんの/ var / libに/ mysqlの/のib_logfile *:そのようなファイルまたはディレクトリ
ananth

1
/ var / lib / mysqlディレクトリはmysqlで書き込み可能ですか?
ジョス14

1
私はLinux初心者です。chmod 777を使用して/ var / lib / mysqlの権限を変更しました これが正しい方法ではないかどうかを確認する方法を教えてください。
アナント14

回答:


28

ターミナルを開き(Ctrl+ Alt+ t)、次を実行します。

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

そして、行をコメントアウトrecord_buffer=64Mして/etc/mysql/my.cnf 、[1]

次に、次を使用してmsyqlを再起動します。

sudo service mysql restart

(ソース)


1
私はあなたがmentioned..OnはsudoのサービスMySQLの再起動を実行しているコマンドを実行し、それがメッセージストップを与えた:不明なインスタンスとシェルプロンプトが(再起動はまだ過去50分から実行されている)は表示されませんでした
ananth

1
また、エラーログには次のように表示されます。-140425 15:09:11 InnoDB:サポートされる最高のファイル形式はBarracudaです。140425 15:09:12 InnoDB:バックグラウンドスレッドの開始を待っています140425 15:09:13 InnoDB:5.5.37が開始されました。ログシーケンス番号940942258188 140425 15:09:13 [エラー] / usr / sbin / mysqld:不明な変数 'record_buffer = 64M' 140425 15:09:13 [エラー] 140425の中止15:09:13 InnoDB:シャットダウンの開始... 140425 15:09:14 InnoDB:シャットダウンが完了しました。ログシーケンス番号940942258188 140425午後3時09分14秒[注]は/ usr / sbinに/ mysqldを:完全なシャットダウン
ananth

いいえ。sudoサービスmysqlを再起動しました。
アナント14

やってみてsudo service mysql startください
jobin 14

実行中のmysqlの再起動プロセスを強制終了する必要がありますか?問題は発生しますか??
アナント14

9

これは私の問題を解決しました:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
これらの手順を適用すると、データベースが削除されます。今、私は何をしますか??
アミット・ヤダフ

7

次の方法で問題を解決しました。

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

別のコンテキストでは、mysqlデーモンの起動に失敗したために直面​​しました。だからコマンドでデーモンを起動します- mysqld startそして、サービスを開始してみてください。


2

ログファイルに同じエラーメッセージと同じ空白がありました。config-file(my.cnf)で、[mysqld]セクションに次の行を追加して、myisamテーブルを使用することを指定しました。

default-table-type = myisam

mysqlをアップグレードした後、これによりmysqlが起動しないようです。これを次のように変更しました。

default-storage-engine = myisam

そして今、すべてが正常に動作します。


1

新しいスワップスペースを追加して使用可能なRAMを増やすことも役立ちます。手順はこちら

/ swapfileは、次のように使用可能なスペースよりも小さいサイズで作成してください。

df -h

たとえば、df- hの出力は次のとおりです。

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

そこで、2 Gを使用して作成しました

sudo fallocate -l 2G /swapfile

そして、サービスを開始するだけです

sudo /etc/init.d/mysql restart

お役に立てれば。ではごきげんよう。


1

私の解決策:

すべての/etc/rc1.d ... /etc/rc5.dで、mysqlスクリプトがK AS K10mysqlではなくS(Ex S10mysql)で始まるかどうかを確認します。

説明:Kプレフィックスは、停止、killサービスの種類でロードされます。Sプレフィックスはstartパラメーターで始まります。

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

私の場合、それはスペースの問題でした。十分なスペースが残っているかどうかを確認します。

/var/log/mysql/error.logI 2つのラインからヒントを得ました:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

スペースの問題であることがわかりました。

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

ここから、仮想サーバーに十分なスペースが残っていないことがわかりました/dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /。そして、仮想ドライブを移行するか増やすかを考えましたが、まず不要なファイルを削除することにしました。

そのため、不要なキャッシュとファイルをクリーンアップする必要がありました。

#apt-get clean
#apt-get -f autoremove

その後、mysqlの破損したログファイルを後で削除することを忘れないでください。mysqlを再起動すると再び生成されます

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

mysqlサーバーサービスを確認してください。おそらく稼働しています。

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

ケースは閉じられました。役に立てば幸いです。


0

ファイル/var/lib/mysql/.run-mysql_upgradeを削除すると、起動するはずです

;)

「大きな力には大きな責任が伴います」


0

で設定max_allowed_packet = 0.5Mしたときにこの問題が発生しました/etc/mysql/my.cnf

に変更max_allowed_packetして解決しました1M


0

次のコマンドは私の問題を解決し、mysqlはその後起動する可能性があります(場合によっては役に立つかもしれません)

chown -R mysql: /var/lib/mysql
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.