Используйте следующие команды для обнаружения точно, какие процессы содержат монопольные блокировки на таблице. К вашему сведению создание любого индекса типа должно поместить монопольные блокировки на таблицу из-за сложности задачи. В кластерных индексах данные перестроены физически на диске. Никакой доступ не будет доступен на таблице, если Вы не укажете опцию ONLINE = ПРОЧЬ при создании индекса.
Перед выполнением, ЗАМЕНА DATABASE_NAME, DB_ID, OBJ_ID и SPID с реальными целочисленными значениями.
CREATE TABLE tempdb..#temp_lock
(spid интервал, dbid интервал, интервал ObjId, интервал IndId, Тип nvarchar (30), Ресурс nvarchar (100), Режим nvarchar (10), Состояние nvarchar (30))Используйте DATABASE_NAME
Искать
введите в tempdb..#temp_lock исполнительное ведущее устройство.. sp_lock
выберите spid, ObjId, режим, имя от tempdb..#temp_lock как внутреннее объединение [test2].. sysobjects как b на a. ObjId = b.id, где a.dbid = DB_ID
Определите Spid, который содержит режим "X", соединяет Вашу таблицу. Запишите ObjId и значения SPID от предыдущего запроса.
Узнайте то, что блокировку выполняет Spid.
dbcc inputbuffer (SPID)
или более подробный:
ОБЪЯВИТЕ @Handle двоичный файл (252)
ВЫБЕРИТЕ @Handle = sql_handle ОТ ведущего устройства.. sysprocesses, ГДЕ spid = SPID
ВЫБЕРИТЕ * ИЗ:: fn_get_sql (@Handle) идут
Решите, завершить ли процесс или фиксировать транзакцию, если Вы знаете, кого (пользователя) выполняет.
УНИЧТОЖЬТЕ SPID
Создайте индекс снова.
mysql_install_db
chown -R mysql:mysql /yourdatadir
service mysql start
Это должно сработать за вас.
Как мне тогда установить пароль root?
Это не редкость, когда установка MySQL поставляется в таком виде - как только вы запустите сервер, запустите mysql как root, а затем измените пароль :
[root@yourbox ~]# mysql
....
mysql> UPDATE mysql.user
SET Password=PASSWORD('cleartext password')
WHERE User='root';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> FLUSH PRIVILEGES;
Что касается исправления вашей ошибки (что вам нужно сделать перед изменением пароля) - это обычно вызвано проблемой с правами доступа. Убедитесь, что каталог / var / lib / mysql / существует и доступен для записи с помощью uid dbms, и что uid СУБД может записывать данные в каталог files / data. Если проблема не исчезла, проверьте журнал mysql и посмотрите, есть ли в каталоге / var / lib / mysql / файл с расширением .err.
Убедитесь, что у пользователя, запускающего mysql (обычно mysql
), есть разрешение на чтение / запись / создание файлов во всех каталогах, на которые есть ссылки в файлах конфигурации.
Если вы изменили расположение файла журнала, например, на / var / log / mysql
, то этот каталог должен принадлежать пользователю mysql
.