Назад | Перейти на главную страницу

Проблемы MySQL на Snow Leopard

Я просто стер и переустановил 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)