私は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
これは私の問題を解決しました:
mkdir /var/run/mysqld
touch /var/run/mysqld/mysqld.sock
chown -R mysql /var/run/mysqld
/etc/init.d/mysql restart
次の方法で問題を解決しました。
chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/
別のコンテキストでは、mysqlデーモンの起動に失敗したために直面しました。したがって、コマンド-mysqld start
でデーモンを開始してから、サービスを開始してみてください。
ログファイルに同じエラーメッセージと同じ空白がありました。構成ファイル(my.cnf)で、[mysqld]セクションに次の行を追加して、myisamテーブルを使用することを指定しました。
default-table-type = myisam
Mysqlをアップグレードした後、これによりmysqlが起動しないようです。これを次のように変更しました。
default-storage-engine = myisam
そして今、すべてが正常に動作します。
私の場合、それはスペースの問題でした。十分なスペースが残っているかどうかを確認します。
/var/log/mysql/error.log
から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#
ケースは閉じられました。役に立てば幸いです。
新しいスワップスペースを追加して使用可能なRAMを増やすことも役立ちます。手順は here です
/ 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
お役に立てれば。ではごきげんよう。
私の解決策:
すべての/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
次のコマンドは私の問題を解決し、mysqlはその後起動する可能性があります(場合によっては役に立つかもしれません)
chown -R mysql: /var/lib/mysql
ファイル/var/lib/mysql/.run-mysql_upgradeを削除すると、起動するはずです
;)
「大きな力には大きな責任が伴います」
max_allowed_packet = 0.5M
に/etc/mysql/my.cnf
を設定すると、この問題が発生しました。
max_allowed_packet
を1M
に変更して解決しました。