Wednesday, October 27, 2021

[SOLVED] mysql on amazon linux - MySQL Daemon failed to start

Issue

I tried that restarting EC2 instance and sudo service httpd restart.

But I still get this message:

[ec2-user@ip-* ~]$ sudo service mysqld start
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

Also I get this message:

[ec2-user@ip-* ~]$ mysqld
160127  7:01:48 [Note] mysqld (mysqld 5.5.46) starting as process 2745 ...
160127  7:01:48 [Warning] Can't create test file /var/lib/mysql/ip-*.lower-test
160127  7:01:48 [Warning] Can't create test file /var/lib/mysql/ip-*.lower-test
160127  7:01:48 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
160127  7:01:48 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
160127  7:01:48 InnoDB: The InnoDB memory heap is disabled
160127  7:01:48 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160127  7:01:48 InnoDB: Compressed tables use zlib 1.2.8
160127  7:01:48 InnoDB: Using Linux native AIO
160127  7:01:48 InnoDB: Initializing buffer pool, size = 128.0M
160127  7:01:48 InnoDB: Completed initialization of buffer pool
160127  7:01:48  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

I don't know what should I do..

Cheers!

EDIT

(+ I'm also using amazon RDS.)

Now, I tried sudo chown -R mysql:mysql /var/lib/mysql too.

But

[ec2-user@ip-* ~]$ mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

[ec2-user@ip-* ~]$ ls -lh /var/lib/mysql/
합계 29M
-rw-rw---- 1 mysql mysql 5.0M  1월 27 06:52 ib_logfile0
-rw-rw---- 1 mysql mysql 5.0M  1월 27 06:12 ib_logfile1
-rw-rw---- 1 mysql mysql  18M  1월 27 06:52 ibdata1
drwx------ 2 mysql mysql 4.0K  1월 20 07:03 mysql
drwx------ 2 mysql mysql 4.0K  1월 20 07:03 performance_schema
drwx------ 2 mysql mysql 4.0K  1월 20 07:03 test

Solution

I answer myself to my question to help other people in the same problem.

I resolved this problem from these steps:

  1. Restart your EC2 instance.
  2. Type sudo service httpd restart. (I don't know why I should do these two steps.)
  3. Type sudo chown -R mysql:mysql /var/lib/mysql. - Before typing this command, check your user= option in your /etc/my.cnf. If there is no user= option, your user is "mysql". (Visit https://stackoverflow.com/a/21435052/1570534)
  4. Change the innodb_buffer_pool_size option inside /etc/my.cnf from 128 (can be different) to 500M. If you don't have innodb_buffer_pool_size option in your /etc/my.cnf, add innodb_buffer_pool_size=500M in [mysqld] section.

I hope it helps you!



Answered By - Yonggoo Noh