У меня есть сервер под управлением CentOS 5.5 x86_64, и я недавно установил MySQL Server через YUM, но при запуске сервера я получаю:
[root@server etc]# service mysqld start
Warning: World-writable config file '/etc/my.cnf' is ignored
Warning: World-writable config file '/etc/my.cnf' is ignored
Warning: World-writable config file '/etc/my.cnf' is ignored
Warning: World-writable config file '/etc/my.cnf' is ignored
Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]
Мой my.cnf выглядит так:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
А мой mysqld.log выглядит так:
111228 10:47:50 mysqld started
Warning: World-writable config file '/etc/my.cnf' is ignored
InnoDB: Log scan progressed past the checkpoint lsn 0 36808
111228 10:47:51 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 43655
111228 10:47:51 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Прогресс в процентах: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2728 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
111228 10:47:51 InnoDB: Started; log sequence number 0 43655
111228 10:47:51 [ERROR] Fatal error: Can't open and lock privilege tables: Table
mysql.host не существует
111228 10:47:51 mysqld завершился`
Может ли кто-нибудь указать, почему это происходит?
Сначала исправьте разрешение для /etc/my.cnf. Поскольку он игнорируется, ваш экземпляр mysql не может найти каталог базы данных, указанный в переменной datadir. Если это не сработает, вы можете запустить следующее, чтобы сообщить mysql путь к вашей базе данных.
mysql_install_db --user=mysql --ldata=/var/lib/mysql/
Вам нужно установить максимальное разрешение для файла 644. Я заметил, что сценарии сходят с ума, когда они доступны для записи «миру».
Если у вас возникнут другие похожие проблемы, но с каталогами, вам нужно установить это значение на 755.
Я бы начал с устранения проблем, о которых предупреждают сообщения об ошибках:
Warning: World-writable config file '/etc/my.cnf' is ignored
так например:
chmod 0640 /etc/my.cnf
а затем попробуйте запустить его снова и посмотреть, что он говорит.