2014-02-10 4 views
2

У меня был старый сервер ламп, который я хотел переместить на новую машину, поэтому я сделал mysqldump, установил Ubuntu Server 13.10 на новую машину, установил лампу во время установки, затем импортировал мои старые базы данных mysql со старого сервера лампы. К моему удивлению, все, казалось, работало сразу после импорта mysql.Fresh MYSQL install, доступ запрещен для пользователя 'root'

Затем я попытался настроить задание cron для mysqldump каждые базы данных каждый час на резервный сервер. Чтобы убедиться, что это сработало, я попробовал вручную запустить mysqldump на новом сервере, чтобы убедиться, что он работает (вместо того, чтобы ждать выполнения задания cron). В любом случае, функция mysqldump не работает, и по какой-то причине теперь я не могу получить доступ к mysql вообще. Я пробовал:

mysql -u root -p 

и получить "ERROR 1045 (28000): Доступ запрещен для пользователя 'корень' @ 'локальный' (используя пароль: ДА)"

Кроме того, ни один из моих PHP скриптов не может получить доступ базы данных mysql. Поэтому я заблокирован.

Я не знаю, почему запуск mysqldump (или crontab) заблокировал бы меня, поэтому я думаю, что это связано с импортом всех баз данных с моего старого сервера ламп (который запускал более старую версию mysql) ,

Я по-прежнему новичок в Linux, по большей части, поэтому любая помощь будет оценена!

+1

смотрите здесь http://stackoverflow.com/questions/19220085/error-1045-28000-access-denied-for-user-username-using-password-yes –

ответ

6

Я до сих пор не знаю, почему Я был заперт, но чтобы решить эту проблему, я должен был сбросить MySQL корневой пароль, который я сделал, следуя инструкциям на этом сайте (но я изменил их для Ubuntu 13,10): https://help.ubuntu.com/community/MysqlPasswordReset

Остановить процесс MySQL демона с помощью следующей команды:

sudo pkill mysqld 

Запустите процесс демона туздЫ с помощью опции --skip-грант-таблицы с помощью этой команды

sudo /usr/sbin/mysqld --skip-grant-tables & 

начать процесс MySQL клиента с помощью этой команды

mysql -u root 

из MySQL в командной строке выполнить эту команду, чтобы иметь возможность изменить любой пароль

FLUSH PRIVILEGES; 

Затем сбросьте/обновить ваш пароль

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('password'); 

Если у вас есть учетная запись пользователя mysql, которая может подключаться отовсюду, вы должны также сделать:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root'; 

После того, как вы получили сообщение, указывающее успешный запрос (одна или несколько строк влияет), флеш привилегии:

FLUSH PRIVILEGES; 

Затем остановить процесс туздЫ и возобновить его с классическим способом:

sudo pkill mysqld 
sudo service mysql restart 

Некоторые из этих шагов может быть ненужным, но это, как я успешно сбросить MySQL корневой пароль пользователя на Ubuntu Server 13.10 после импорта файла mysqldump со старого сервера лампы

1

По моему, проблема заключалась в том, что я могу получить доступ только к mysql из CLI, зарегистрированного как root.