2

Поэтому сначала я получал эту ошибку при попытке создать базы данных для использования в phpmyadmin. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Я посмотрел в нескольких местах, и мой приятель сказал мне просто попытаться переустановить mysql, так как я только что переустановил сервер вчера.

Поэтому я решил переустановить mysql, и теперь я даже не могу запустить установщик без этой ошибки: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Я также получил ошибку 'root'@'localhost' при попытке установить скрипт с базой данных, которую я создал. Это ошибка, которую я получаю, когда пытался установить скрипт: Запуск Centos 6

PHP 5.3.3 (я использую скрипт, Ioncubed, а PHP 5.4 мне не нужен).

РЕДАКТИРОВАТЬ:

Если вы задаетесь вопросом, почему я не осматриваюсь сначала, я осмотрелся вокруг! Мне не повезло найти других, у которых была такая проблема, как у меня.

РЕДАКТИРОВАТЬ 2:

Я успешно установил MySQL сейчас. Мне захотелось вернуться и дать ему еще один шанс, и установщик прошел нормально. Но я все еще получаю ошибку root @ localhost, представленную на изображении выше. Я уже проверил, чтобы убедиться, что конфигурация не волшебным образом использует "root" @ "localhost".

3 ответа3

1

Конфигурация базы данных использует root @ localhost, и этот пароль был выбран при первой установке. Это не пароль администратора системы. MySQL root и системный root - это разные учетные записи с возможными разными паролями.

Попробуйте запомнить и попытайтесь угадать это, используя mysql -u root -p чтобы попытаться. Если не повезло, поищите в Google, как удалить конфигурацию MySQL и начать заново.

0

MySQL по-разному относится к "localhost" и "127.0.0.1"; первый используется для запуска соединения с сокетом Unix в /var/lib/mysql/mysql.sock или любом другом . Таким образом, вам нужно две разные инструкции GRANT в вашей таблице mysql.user (по крайней мере, я делаю это в OpenSuSE Linux; например, в Windows ваш пробег может отличаться):

(MySQL соединение как root)

GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@127.0.0.1 IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Тогда очевидно, что ваш скрипт действительно пытается установить его как «root @ localhost». Если вы не можете редактировать скрипт или конфигурацию установщика, вы можете пройти через это, временно отключив пароль root:

USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

... для большей безопасности не выходите из mysql после этого. После завершения установки вам нужно будет сбросить пароль root:

GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

Это не решает проблему того, что делает скрипт после установки. Скорее всего, он будет по- прежнему использовать корень на локальном хосте, и до сих пор не используют пароль. Поэтому, как только вы сбросите пароль, он перестанет работать. Вам нужно найти ссылки на root и localhost (они могут быть указаны отдельно) в конфигурации скрипта: должно быть что-то вроде

user = root
host = localhost
dbname = somedb

или, может быть

'username' => 'root',
"hostaddr" => "localhost",
...

и поменять их. Вы можете создать нового пользователя в MySQL, просто выполнив новую инструкцию GRANT .

0

В обычных случаях stack_overflow полезен. Однако, в случае конфликта другой версии, пароль не может быть успешно сброшен. В этом случае, пожалуйста, переустановите MySQL. Это то, что я встречаю!

Вот шаги:1) найти установленный MySQL
# rpm -qa | grep mysql

2) удалить mysql
#rpm -e 'программа'

3) удалить библиотеку и включить
#rm -rf /usr /lib /mysql
#rm -rf /usr /include /mysql

4) удалите дату mysql или сделайте ее резервную копию.
#mv /var /lib /mysql ~ /mysql_backup

5) переустановите mysql
#yum установить mysql mysql-сервер

6) запустите службу MySQL и попробуйте
#chkconfig mysqld on
#service mysqld start
#mysql -uroot -p
- на этом этапе, если установка прошла успешно, пароль должен быть нулевым. просто нажмите Enter и войдите в базу данных MySQL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .