Я просто стер и переустановил Snow Leopard. Я установил 64-битную версию MySQL 5.1.48. У меня проблемы с сервером MySQL ... когда я загружаю компьютер и вхожу в систему, сервер не работает. Я попытался запустить его, используя панель настроек, нажав «Запустить сервер MySQL», но все, что он сделал, это выделил кнопку синим и подумал около минуты, а затем кнопка вернулась в нормальное состояние, и ничего не произошло.
Затем я попытался запустить его с терминала:
Hristo$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
....................................................................................................
ERROR! Manager of pid-file quit without updating file.
поэтому я проверил статус:
Hristo$ sudo /usr/local/mysql/support-files/mysql.server status
Password:
/usr/local/mysql/support-files/mysql.server: line 418: pidof: command not found
ERROR! MySQL is not running
Я пробовал это:
Hristo$ /usr/local/mysql/bin/mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Так что я не знаю, что мне делать. Ранее сегодня сервер работал, но я пошел в панель настроек, чтобы попытаться остановить его… и произошло то же самое… Я нажал кнопку «Остановить сервер MysQL», он немного подумал, а потом ничего. Итак, я перезагрузил компьютер, и теперь у меня возникли вышеупомянутые проблемы, и, по-видимому, файла mysql.sock больше нет в / tmp /… это было ранее сегодня.
Любые идеи?
Спасибо, Христо
ОБНОВЛЕНИЕ 2: файл журнала ошибок:
100701 13:27:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
100701 13:27:03 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
100701 13:27:03 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
100701 13:27:03 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 35
Это повторяется некоторое время, а затем ...
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
100701 13:28:43 InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
100701 13:28:43 InnoDB: Operating system error number 35 in a file operation.
InnoDB: Error number 35 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html
InnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
100701 13:28:43 [ERROR] Plugin 'InnoDB' init function returned error.
100701 13:28:43 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100701 13:28:43 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
100701 13:28:43 [ERROR] Do you already have another mysqld server running on port: 3306 ?
100701 13:28:43 [ERROR] Aborting
100701 13:28:43 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
100701 13:28:43 mysqld_safe mysqld from pid file /usr/local/mysql/data/pid_file.pid ended
ОБНОВЛЕНИЕ: после попытки запустить MySQL с sudo sh -x
Hristo$ sudo sh -x /usr/local/mysql/support-files/mysql.server start
+ basedir=
+ datadir=
+ service_startup_timeout=900
+ pid_file=
+ server_pid_file=
+ use_mysqld_safe=1
+ user=mysql
+ test -z ''
+ basedir=/usr/local/mysql
+ bindir=./bin
+ test -z ''
+ datadir=/usr/local/mysql/data
+ sbindir=./bin
+ libexecdir=./bin
+ datadir_set=
+ lsb_functions=/lib/lsb/init-functions
+ test -f /lib/lsb/init-functions
+ PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/mysql/bin
+ export PATH
+ mode=start
+ shift
+ other_args=
+ case `echo "testing\c"`,`echo -n testing` in
++ echo 'testing\c'
++ echo -n testing
+ echo_n=
+ echo_c='\c'
+ test -x ./bin/my_print_defaults
+ print_defaults=./bin/my_print_defaults
+ extra_args=
+ test -r /usr/local/mysql/my.cnf
+ test -r /usr/local/mysql/data/my.cnf
++ ./bin/my_print_defaults mysqld server mysql_server mysql.server
+ parse_server_arguments
++ ./bin/my_print_defaults manager
+ parse_manager_arguments
+ test -z ''
++ /bin/hostname
+ pid_file=/usr/local/mysql/data/mysqlmanager-pid_file.pid
+ test -z ''
++ /bin/hostname
+ server_pid_file=/usr/local/mysql/data/pid_file.pid
+ case "$mode" in
+ cd /usr/local/mysql
+ manager=./bin/mysqlmanager
+ test -x ./bin/mysqlmanager
+ manager=./bin/mysqlmanager
+ echo 'Starting MySQL'
Starting MySQL
+ test -x ./bin/mysqlmanager -a 1 = 0
+ test -x ./bin/mysqld_safe
+ pid_file=/usr/local/mysql/data/pid_file.pid
+ wait_for_pid created 23653
+ verb=created
+ manager_pid=23653
+ i=0
+ avoid_race_condition='by checking again'
+ test 0 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ :
+ echo '.\c'
.+ ./bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/pid_file.pid
++ expr 0 + 1
+ i=1
+ sleep 1
+ test 1 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ :
+ echo '.\c'
.++ expr 1 + 1
+ i=2
+ sleep 1
+ test 2 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ :
Это повторяется долго ...
+ echo '.\c'
.++ expr 97 + 1
+ i=98
+ sleep 1
+ test 98 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ :
+ echo '.\c'
.++ expr 98 + 1
+ i=99
+ sleep 1
+ test 99 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ :
+ echo '.\c'
.++ expr 99 + 1
+ i=100
+ sleep 1
+ test 100 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ test -n 'by checking again'
+ avoid_race_condition=
+ continue
+ test 100 -ne 900
+ case "$verb" in
+ test -s /usr/local/mysql/data/pid_file.pid
+ test -n 23653
+ kill -0 23653
+ test -n ''
+ log_failure_msg 'Manager of pid-file quit without updating file.'
+ echo ' ERROR! Manager of pid-file quit without updating file.'
ERROR! Manager of pid-file quit without updating file.
+ return 1
+ return_value=1
+ test -w /var/lock/subsys
+ exit 1
Вы проверяли разрешения для каталога, в котором должен быть создан файл PID (/ var / run или что это такое)?
Также может быть что-то с неправильными параметрами в my.cnf. Попробуйте запустить MySQL без my.cnf (переименуйте его) или закомментируйте все, кроме абсолютно необходимых опций.
Есть несколько возможных причин, в вашем вопросе недостаточно информации, чтобы мы могли с уверенностью определить причину вашей проблемы.
В частности:
Как вы установили MySQL? Вы использовали пакет? Если да, то какой? Или вы строили из исходников?
Вот несколько предложений:
Если вы измените свою команду запуска на:
sudo sh -x /usr/local/mysql/support-files/mysql.server start
Вы увидите каждую команду, которую выполняет сценарий, и это поможет вам (нам) понять, где что-то идет не так.
В моей установке OSX 10.5 все, что находится в / usr / local / mysql, принадлежит root: wheel Кроме / usr / local / mysql / data, который является _mysql: wheel. Это, вероятно, самая распространенная проблема запуска mysql.
Журнал ошибок, скорее всего, будет информативным и, вероятно, находится в /usr/local/mysql/data/HOSTNAME.err.
Этого должно быть достаточно, чтобы вы могли исправить ситуацию сами; Если нет, ответьте на мой вопрос и опубликуйте свой журнал, и мы сможем продолжить.
Если вы установили из DMG, есть сценарий запуска, который идет с ним, вы дважды щелкнули по нему?
хорошо, этот скрипт устанавливает файлы в / Library / StartupItems / MySQLCOM
вместо того, чтобы делать mysql.server, попробуйте запустить / остановить его. Я знаю, что все, что он делает, это вызывает mysql.server, но мне интересно, действительно ли все установлено правильно или нет. Следующее - это копия, вставленная из README на DMG.
Если вы установили элемент автозагрузки, используйте эту команду:
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
Если вы не используете элемент автозагрузки, введите следующую последовательность команд:
shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-Z)
shell> bg
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)