When you execute a MySQL statement, you may sometimes encounter ERROR 1054 as shown below:
mysql> SELECT user_name FROM users;
ERROR 1054 (42S22): Unknown column 'user_name' in 'field list'
The ERROR 1054 in MySQL occurs because MySQL can’t find the column or field you specified in your statement.
This error can happen when you execute any valid MySQL statements like a SELECT
, INSERT
, UPDATE
, or ALTER TABLE
statement.
This tutorial will help you fix the error by adjusting your SQL statements.
Let’s start with the SELECT
statement.
Fix ERROR 1054 on a SELECT statement
To fix the error in your SELECT
statement, you need to make sure that the column(s) you specified in your SQL statement actually exists in your database table.
Because the error above says that user_name
column is unknown, let’s check the users
table and see if the column exists or not.
To help you check the table in question, you can use the DESCRIBE
or EXPLAIN
statement to show your table information.
The example below shows the output of EXPLAIN
statement for the users
table:
mysql> EXPLAIN users;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| username | varchar(25) | NO | | | |
| display_name | varchar(50) | NO | | | |
| age | int | YES | | NULL | |
| comments | text | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
From the result above, you can see that the users
table has no user_name
field (column)
Instead, it has the username
column without the underscore.
Knowing this, I can adjust my previous SQL query to fix the error:
SELECT username FROM users;
That should fix the error and your SQL query should show the result set.
Fix ERROR 1054 on an INSERT statement
When you specify column names in an INSERT
statement, then the error can be triggered on an INSERT
statement because of a wrong column name, just like in the SELECT
statement.
First, you need to check that you have the right column names in your statement.
Once you are sure, the next step is to look at the VALUES()
you specified in the statement.
For example, when I ran the following statement, I triggered the 1054 error:
mysql> INSERT INTO users(username, display_name)
-> VALUES ("jackolantern", Jack);
ERROR 1054 (42S22): Unknown column 'Jack' in 'field list'
The column names above are correct, and the error itself comes from the last entry in the VALUES()
function.
The display_name
column is of VARCHAR
type, so MySQL expects you to insert a VARCHAR
value into the column.
But Jack
is not a VARCHAR
value because it’s not enclosed in a quotation mark. MySQL considers the value to be a column name.
To fix the error above, simply add a quotation mark around the value. You can use both single quotes or double quotes as shown below:
INSERT INTO users(username, display_name)
VALUES ("jackolantern", 'Jack');
Now the INSERT
statement should run without any error.
Fix ERROR 1054 on an UPDATE statement
To fix the 1054 error caused by an UPDATE
statement, you need to look into the SET
and WHERE
clauses of your statement and make sure that the column names are all correct.
You can look at the error message that MySQL gave you to identify where the error is happening.
For example, the following SQL statement:
UPDATE users
SET username = "jackfrost", display_name = "Jack Frost"
WHERE user_name = "jackolantern";
Produces the following error:
ERROR 1054 (42S22): Unknown column 'user_name' in 'where clause'
The error clearly points toward the user_name
column in the WHERE
clause, so you only need to change that.
If the error points toward the field_list
as shown below:
ERROR 1054 (42S22): Unknown column 'displayname' in 'field list'
Then you need to check on the SET
statement and make sure that:
- You have the right column names
- Any
string
type values are enclosed in a quotation mark
You can also check on the table name that you specified in the UPDATE
statement and make sure that you’re operating on the right table.
Next, let’s look at how to fix the error on an ALTER TABLE
statement
Fix ERROR 1054 on an ALTER TABLE statement
The error 1054 can also happen on an ALTER TABLE
statement.
For example, the following statement tries to rename the displayname
column to realname
:
ALTER TABLE users
RENAME COLUMN displayname TO realname;
Because there’s no displayname
column name in the table, MySQL will respond with the ERROR 1054 message.
Conclusion
In short, ERROR 1054 means that MySQL can’t find the column name that you specified in your SQL statements.
It doesn’t matter if you’re writing an INSERT
, SELECT
, or UPDATE
statement.
There are only two things you need to check to fix the error:
- Make sure you’ve specified the right column name in your statement
- Make sure that any value of
string
type in your statement is surrounded by a quotation mark
You can check on your table structure using the DESCRIBE
or EXPLAIN
statement to help you match the column name and type with your statement.
And that’s how you fix the MySQL ERROR 1054 caused by your SQL statements.
I hope this tutorial has been useful for you 🙏
Дата: 25.11.2013
Автор: Даниил Каменский , dkamenskiy (at) yandex (dot) ru
При использовании ряда CMS (например, DLE, vBulletin и др.) временами возникает ошибка mysql с номером 1054.
Текст ошибки Unknown column ‘ИМЯ_СТОЛБЦА’ in ‘field list’ в переводе означает «Неизвестный столбец ‘ИМЯ_СТОЛБЦА’ в списке полей.«. Такая ошибка возникает в том случае, если попытаться выбрать (запрос вида select) или изменить (запрос вида update) данные из столбца, которого не существует. Ошибка чаще всего возникает из-за стoронних модулей. Перечислим несколько возможных причин:
- установлен модуль, расчитанный на более новую версию CMS, чем используемая;
- при установке модуля не выполнились операции изменения структуры таблиц;
- после установки сторонних модулей выполнено обновление системы, которое привело к изменению структуры таблиц; при этом модуль не был обновлен на совместимый;
- Из резервной копии восстановлена более старая база данных, а файлы сайта остались в новой версии.
Пример №1:
Имеется таблица сотрудников подразделения.
Поля: id, фамилия, имя, отчество, год рождения, наличие высшего образования.
create table if not exists employee
(
`id` int(11) NOT NULL auto_increment primary key,
`surname` varchar(255) not null,
`name` varchar(255) not null,
`patronymic` varchar(255) not null,
`year_of_birth` int unsigned default 0,
`higher_education` tinyint unsigned default 0
) ENGINE=MyISAM;
Если обратиться к этой таблице с запросом на выборку несуществующего поля, например пола сотрудника по фамилии Власенко, то результатом будет вышеуказанная ошибка:
mysql> select sex from employee where surname=’Власенко’;
ERROR 1054 (42S22): Unknown column ‘sex’ in ‘field list’
Пример №2:
Воспользуемся той же таблицей из примера 1. Если попытаться указать мужской пол у сотрудника по имени Власенко (выяснилось его имя и стало ясно, что это мужчина), то результатом будет та же ошибка:
mysql> update employee set sex=1 where surname=’Власенко’;
ERROR 1054 (42S22): Unknown column ‘sex’ in ‘field list’
Способы борьбы
Самый корректный способ борьбы в устранении причины ошибки. Например, все обновления сайта рекомендуем выполнять сначала на копии сайта и если ошибок нет, то повторять на рабочем сайте. Если при обновлении возникла ошибка, следует найти способ сделать обновление корректно с учетом версий сторонних модулей.
Если по каким-то причинам корректно избежать ошибки не получилось, можно прибегнуть к симптоматическому лечению, которое состоит в простом добавлении недостающих полей в таблицу.
Запрос на добавление:
ALTER TABLE employee ADD COLUMN sex ENUM(‘male’, ‘female’) DEFAULT ‘female’
Что в переводе означает «Изменить таблицу employee, добавив столбец `пол`, назначив ему тип перечисление(мужской/женский) по умолчанию мужской».
При таком добавлении столбца необходимо учитывать, что у всех записей в таблице в столбце sex появится значение по умолчанию. Если добавлять такой столбец как пол (который не может быть равен null и обязательно присутствует у каждого человека), то просто необходимо сразу же
после этого прописать нужное значение во все записи в таблице. В данном случае с добавлением столбца «пол» нужно будет поменять значение на male у всех сотрудников мужского пола.
Трудности могут возникнуть из-за того, что часто нужно самостоятельно определять тип добавляемого столбца.
Примеры:
a) Запрос:
SELECT faqname, faqparent, displayorder, volatile FROM faq where product
IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);
Ответ сервера:
Invalid SQL: SELECT faqname, faqparent, displayorder, volatile FROM faq where
product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);
MySQL Error: Unknown column ‘faqname’ in ‘field list’
Error Number: 1054
Отсутствует столбец faqname, добавим его. Логика подсказывает, что если имя — то это скорее всего символы, а не целое число или тип datetime. Количество символов заранее, конечно, неизвестно, но редко имя бывает больше чем 255 символов. Поэтому добавим столбец faqname с указанием типа varchar(255):
ALTER TABLE faq ADD faqname varchar(255)
б) Запроc:
UPDATE dle_usergroups set group_name=‘Журналисты’, allow_html=‘0’ WHERE id=‘3’;
Ответ сервера:
Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_html=’0′ WHERE id=’3′;
MySQL Error: Unknown column ‘allow_html’ in ‘field list’
Error Number: 1054
Отсутствует столбец allow_html, добавим его. Смотрим на то значение, которое туда пытается вставить запрос, видим 0. Скорее всего этот столбец может принимать два значения — разрешить/не разрешить (1 или 0), то есть однобайтное целое число вполне подойдёт. Поэтому добавим столбец allow_html с указанием типа tinyint:
ALTER TABLE faq ADD allow_html tinyint
Таким образом можно составить шаблон для «лечения» таких проблем: ALTER TABLE [a] ADD [b] [c];, где
a — имя таблицы, откуда выбираются (или где обновляются) данные;
b — имя столбца, который нужно добавить;
c — тип данных.
Примеры (во всех примерах идёт работа с таблицей dle_usergroups):
1) Запрос:
UPDATE dle_usergroups set group_name=‘Журналисты’, allow_html=‘0’ WHERE id=‘3’;
Ответ сервера:
Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_html=’0′ WHERE id=’3′;
MySQL Error: Unknown column ‘allow_html’ in ‘field list’
Error Number: 1054
Решение:
a=dle_usergroups, b=allow_html, c=tinyint, то есть
ALTER TABLE dle_usergroups ADD allow_html tinyint
Для того, чтобы выполнить исправляющий ошибку запрос, необходимо воспользоваться каким-либо mysql-клиентом. В стандартной поставке mysql всегда идёт консольный клиент с названием mysql (в windows mysql.exe). Для того, чтобы подключиться к mysql выполните команду
mysql -hНАЗВАНИЕ_ХОСТА -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ ИМЯ_БАЗЫ_ДАННЫХ,
после чего введите необходимый запрос и точку с запятой после него в появившейся командной строке.
В том случае, если работа происходит на чужом сервере (например, арендуется хостинг) и нет возможности воспользоваться mysql-клиентом из командной строки (не всегда хостеры представляют такую возможность), можно воспользоваться тем инструментом, который предоставляет хостер — например, phpMyAdmin, и в нём ввести нужный sql-запрос.
В то же время наиболее подходящий инструмент для работы с mysql — это MySQL Workbench — разработка создателей mysql с достаточно удобным пользовательским интерфейсом.
Если же нет возможности подключиться к mysql напрямую (например из-за ограничений файрвола), то в ряде случаев возможно удалённо подключиться к MySQL-серверу через SSH-туннель.
2) Запрос:
UPDATE dle_usergroups set group_name=‘Журналисты’, allow_subscribe=‘0’ WHERE id=‘3’;
Ответ сервера:
Invalid SQL: UPDATE dle_usergroups set group_name=’Журналисты’, allow_subscribe=’0′ WHERE id=’3′;
MySQL Error: Unknown column ‘allow_subscribe’ in ‘field list’
Error Number: 1054
Решение:
a=dle_usergroups, b=allow_subscribe, c=tinyint, то есть
ALTER TABLE dle_usergroups ADD allow_subscribe tinyint
3) Запрос:
SELECT faqname, faqparent, displayorder, volatile FROM faq where product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);
Oтвет сервера:
InvalidSQL: SELECT faqname, faqparent, displayorder, volatile FROM faq where product IN (», ‘vbulletin’, ‘watermark’, ‘cyb_sfa’, ‘access_post_and_days’);
MySQL Error: Unknown column ‘faqname’ in ‘field list’
Error Number: 1054
Решение:
a= faq, b=faqname, c=varchar(255), то есть
ALTER TABLE faq ADD faqname varchar(255)
Результат
В результате добавления необходимого поля ошибка должна исчезнуть. Однако, существует вероятность того, что в структуре таблиц не хватало несколько столбцов: в этом случае ошибка повторится с указанием другого имени столбца, для которого потребуется повторить процедуру. Помните, что добавление незаполненных столбцов угаданного типа не всегда будет соответствовать задуманной логике приложения и может нарушить часть функциональности.
Источник: webew.ru
Дата публикации: 25.11.2013
© Все права на данную статью принадлежат порталу SQLInfo.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в бумажных изданиях допускается только с разрешения редакции.
When running MysqlTuner on Ubuntu 16.04, you might see the error “ERROR 1054 (42S22) at line 1: Unknown column ‘password’ in ‘where clause’”, since Debian hasn’t updated his package yet (the fix has been implemented in later versions of MysqlTuner).
The root cause of this issue is the fact that MySQL changed the name of its password column in mysql.user from password to authentication_string.
To ‘temporarily’ fix this, you can change the few entries (8 in total) containing ‘password’ into ‘authentication_string’ manually.
- sudo nano /usr/bin/mysqltuner
- 2 entries to change under # Looking for Empty Password
- 3 entries under # Looking for User with user/ uppercase /capitalise user as password
- 3 entries under # Looking for User with user/ uppercase /capitalise weak password
Just be sure to leave the PASSWORD() function untouched. They will all be left hand assignments (password = or password IS NULL) or in the clause (password as Binary)
If you’re getting an error that reads something like “ERROR 1054 (42S22): Unknown column ‘tab.ColName’ in ‘on clause”” in MariaDB, here are three likely causes:
- The column doesn’t exist.
- You’re trying to reference an aliased column by its column name.
- Or it could be the other way around. You could be referencing the column with an alias that was never declared.
If a column has an alias, then you must use that alias when referencing it in any ON
clause when doing a join against two or more tables. Conversely, if you reference a column by an alias, then you need to ensure that the alias is actually declared in the first place.
Example 1
Here’s an example of code that produces the error:
SELECT
c.CatId,
c.CatName
FROM Cats c
INNER JOIN Dogs d
ON c.DogName = d.DogName;
Result:
ERROR 1054 (42S22): Unknown column 'c.DogName' in 'on clause'
Here I accidentally used c.DogName
in the ON
clause when I meant to use c.CatName
.
In this case, the fix is simple. Use the correct column name:
SELECT
c.CatId,
c.CatName
FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Example 2
Here’s another example of code that produces the error:
SELECT
CatId,
CatName
FROM Cats
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Result:
ERROR 1054 (42S22): Unknown column 'c.CatName' in 'on clause'
Here I referenced a non-existent alias in the ON
clause. I used c.CatName
to refer to the CatName
column in the Cats
table. The only problem is that the Cats
table doesn’t have an alias.
To fix this issue, all we have to do is provide an alias for the Cats
table:
SELECT
CatId,
CatName
FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Alternatively, we could remove all references to the alias, and just use the full table name:
SELECT
CatId,
CatName
FROM Cats
INNER JOIN Dogs
ON Cats.CatName = Dogs.DogName;
One thing I should point out is that, in this example we didn’t prefix the column names in the SELECT
list with the alias. If we had done that, we would have seen the same error, but with a slightly different message:
SELECT
c.CatId,
c.CatName
FROM Cats
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Result:
ERROR 1054 (42S22): Unknown column 'c.CatId' in 'field list'
In this case, it detected the unknown columns in the field list before it found the one in the ON
clause. Either way, the solution is the same.
Example 3
Here’s another example of code that produces the error:
SELECT
c.CatId,
c.CatName
FROM Cats c
INNER JOIN Dogs d
ON Cats.CatName = d.DogName;
Result:
ERROR 1054 (42S22): Unknown column 'Cats.CatName' in 'on clause'
In this case, an alias was declared for the Cats
table, but I didn’t use that alias in the ON
clause.
The solution here, is to use the alias instead of the table name:
SELECT
c.CatId,
c.CatName
FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
I had similar error during CREATE USER
query.
I did following solution to rectify the user table.
ALTER TABLE `user` ADD `Create_tablespace_priv` ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER `Trigger_priv`;
ALTER TABLE `user` ADD `plugin` CHAR(64) NULL AFTER `max_user_connections`;
ALTER TABLE `user` ADD `authentication_string` TEXT NULL DEFAULT NULL AFTER `plugin`;
ALTER TABLE `user` ADD `password_expired` ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER `authentication_string`;
Now CREATE USER
query works fine.!!
Rectification is achieved from the reference of the answer to Cannot GRANT privileges as root.
Thank you RolandoMySQLDBA.!
Following helped to create above SQL:
+------------------------+------------------------+-----------------------------------+------+-----+---------+ | Field (MySQL 5.1) | Field (MySQL 5.6) | Type | Null | Key | Default | +------------------------+------------------------+-----------------------------------+------+-----+---------+ | Host | Host | char(60) | NO | PRI | | | User | User | char(16) | NO | PRI | | | Password | Password | char(41) | NO | | | | Select_priv | Select_priv | enum('N','Y') | NO | | N | | Insert_priv | Insert_priv | enum('N','Y') | NO | | N | | Update_priv | Update_priv | enum('N','Y') | NO | | N | | Delete_priv | Delete_priv | enum('N','Y') | NO | | N | | Create_priv | Create_priv | enum('N','Y') | NO | | N | | Drop_priv | Drop_priv | enum('N','Y') | NO | | N | | Reload_priv | Reload_priv | enum('N','Y') | NO | | N | | Shutdown_priv | Shutdown_priv | enum('N','Y') | NO | | N | | Process_priv | Process_priv | enum('N','Y') | NO | | N | | File_priv | File_priv | enum('N','Y') | NO | | N | | Grant_priv | Grant_priv | enum('N','Y') | NO | | N | | References_priv | References_priv | enum('N','Y') | NO | | N | | Index_priv | Index_priv | enum('N','Y') | NO | | N | | Alter_priv | Alter_priv | enum('N','Y') | NO | | N | | Show_db_priv | Show_db_priv | enum('N','Y') | NO | | N | | Super_priv | Super_priv | enum('N','Y') | NO | | N | | Create_tmp_table_priv | Create_tmp_table_priv | enum('N','Y') | NO | | N | | Lock_tables_priv | Lock_tables_priv | enum('N','Y') | NO | | N | | Execute_priv | Execute_priv | enum('N','Y') | NO | | N | | Repl_slave_priv | Repl_slave_priv | enum('N','Y') | NO | | N | | Repl_client_priv | Repl_client_priv | enum('N','Y') | NO | | N | | Create_view_priv | Create_view_priv | enum('N','Y') | NO | | N | | Show_view_priv | Show_view_priv | enum('N','Y') | NO | | N | | Create_routine_priv | Create_routine_priv | enum('N','Y') | NO | | N | | Alter_routine_priv | Alter_routine_priv | enum('N','Y') | NO | | N | | Create_user_priv | Create_user_priv | enum('N','Y') | NO | | N | | Event_priv | Event_priv | enum('N','Y') | NO | | N | | Trigger_priv | Trigger_priv | enum('N','Y') | NO | | N | | | Create_tablespace_priv | enum('N','Y') | NO | | N | | ssl_type | ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | | ssl_cipher | ssl_cipher | blob | NO | | NULL | | x509_issuer | x509_issuer | blob | NO | | NULL | | x509_subject | x509_subject | blob | NO | | NULL | | max_questions | max_questions | int(11) unsigned | NO | | 0 | | max_updates | max_updates | int(11) unsigned | NO | | 0 | | max_connections | max_connections | int(11) unsigned | NO | | 0 | | max_user_connections | max_user_connections | int(11) unsigned | NO | | 0 | | | plugin | char(64) | YES | | | | | authentication_string | text | YES | | NULL | | | password_expired | enum('N','Y') | NO | | N | +------------------------+------------------------+-----------------------------------+------+-----+---------+
- Печать
Страницы: [1] 2 Все Вниз
Тема: Mysql не подключается, пароль не сбрасывается (Прочитано 5386 раз)
0 Пользователей и 1 Гость просматривают эту тему.
GarfildNya
Ситуация такова: ввожу в терминале как обычно
mysql -u root -p
ввожу пароль, потом он пишет
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
пробовал сбрасывать пароль
sudo dpkg-reconfigure mysql-server-5.1
пишет, что уже задан пароль и нифига не хочет делать.
пробовал по инструкции https://help.ubuntu.ru/wiki/mysql#восстановление_забытого_пароля_для_root_a и подобным, но не получается. не хочет подключаться к серверу под рутом
что делать?
ранее всё работало
dmig
прочитать инструкцию по восстановлению пароля на сайте mysql
GarfildNya
1 фиг, тоже не работает
пароль-то я как бы, кстати, помню. и правильно его ввожу. без капсов и прочих.
dmig
всё там работает. сколько раз уже использовал.
GarfildNya
блин, заколебался, чего только уже не сделал, понятия не имею, что у меня сейчас на компе с mysql творится)
теперь при обычной команде mysql, допустим, вылазит ошибка
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (13)
изначально там не было этого файла (была циферка 2 вместо 13), я его создал, но я понятия не имею, чё туда совать
помогите? -_-
ранее с mysql не работал так-то, юзал денвер на винде
dmig
ок. значит доки мы не читаем принципиально…
1) удалите виндоус из головы
2) удалите то безобразие, что создали
3) сделайте sudo service mysqld stop
4) сделайте sudo mysqld —skip-grant-tables
5) подключитесь клиентом mysql -uroot
6) сделайте UPDATE mysql.user SET Password=PASSWORD(‘MyNewPass’) WHERE User=’root’;
7) сделайте FLUSH PRIVILEGES;
закрывайте клиента
9) останавливайте сервер, запущенный в 4)
10) sudo service mysqld start
сложно?
это всё описано в официальной доке.
Пользователь решил продолжить мысль 29 Марта 2012, 22:38:54:
кстати, я смотрю, не только в официальной, но и по приведённой ссылке
GarfildNya
1) давно сделал
2) вот тут я хочу по-подробнее спросить, как это сделать?) в убунте тоже нуб пока, ога, на всякий случай спросил, как лучше. пробовал через синаптик, через sudo apt-get remove и всё что нашёл с mysql… ощущение, будто не удалил
кстати, обычно при 4 пункте (я пробовал уже подобные инструкции сначала) вылазила какая-то ошибка. честно, не помню какая, но вылазила, и писалось потом, что операция отменяется. поэтому писал, что нифига не получилось.
dmig
1) давно сделал
2) вот тут я хочу по-подробнее спросить, как это сделать?) в убунте тоже нуб пока, ога, на всякий случай спросил, как лучше. пробовал через синаптик, через sudo apt-get remove и всё что нашёл с mysql… ощущение, будто не удалил
rm /var/run/mysqld/mysqld.sock
кстати, обычно при 4 пункте (я пробовал уже подобные инструкции сначала) вылазила какая-то ошибка. честно, не помню какая, но вылазила, и писалось потом, что операция отменяется. поэтому писал, что нифига не получилось.
1) и снова нет.
а нахрена эти сообщения об ошибках нужны? и уж, тем более, зачем их читать?
GarfildNya
3)garfild@ifg:~$ sudo service mysqld stop
mysqld: unrecognized service
поэтому остановил mysql. (буду на всякий случай писать всё)
4) вроде запустилось, в терминале ничего не прописалось
5)ок
6)
mysql> UPDATE mysql.user SET Password=PASSWORD(ctdf) WHERE User='root';
ERROR 1054 (42S22): Unknown column 'User' in 'where clause'
dmig
3)garfild@ifg:~$ sudo service mysqld stop
mysqld: unrecognized service
поэтому остановил mysql. (буду на всякий случай писать всё)
ок, возможно так
6)
mysql> UPDATE mysql.user SET Password=PASSWORD(ctdf) WHERE User='root';
ERROR 1054 (42S22): Unknown column 'User' in 'where clause'
тааак
лазили кривыми руками в таблицу mysql.user? потому и логиниться не даёт!
варианта 2:
1) удалить базу mysql и запустить dpkg-reconfigure mysql-server (при этом умрут все пользователи, права на базы, ещё что-то)
2) попробовать восстановить таблицу руками (в этом же режиме сервера) — структуру таблицы могу кинуть только вечером
GarfildNya
я никуда ещё не лазил)
ок, попробую, как время появится
Пользователь решил продолжить мысль 30 Марта 2012, 19:00:29:
удалил базу, запустил dpkg-reconfigure mysql-server
0 реакции. на сколько я помню, после этой команды должно окошко вылазить информационное, где ещё пароль руту прописать надо. или я ошибаюсь?
после этой команды прошло секунд 10 и всё. дальше можно команды вводить)
« Последнее редактирование: 30 Марта 2012, 19:00:29 от GarfildNya »
XUbuntu 12.04
dmig
удалил базу, запустил dpkg-reconfigure mysql-server
0 реакции. на сколько я помню, после этой команды должно окошко вылазить информационное, где ещё пароль руту прописать надо. или я ошибаюсь?
да, он должен создать эту базу по новой и, соотв., спросить пароль.
можно поступить просто: sudo apt-get purge mysql-server && sudo apt-get install mysql-server
GarfildNya
можно поступить просто: sudo apt-get purge mysql-server && sudo apt-get install mysql-server
опять не помогло остаётся всё та же ошибка
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
gregory5
GarfildNya
garfild@ifg:~$ mysqld
120401 12:09:01 [Warning] Can't create test file /var/lib/mysql/ifg.lower-test
120401 12:09:01 [Warning] Can't create test file /var/lib/mysql/ifg.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
120401 12:09:01 [ERROR] Aborting
120401 12:09:01 [Note] mysqld: Shutdown complete
garfild@ifg:~$
- Печать
Страницы: [1] 2 Все Вверх