7

Я использую ISPConfig в CentOS и не знаю как, но у меня, похоже, нет пользователя root mysql.

Я могу остановить MySQL с

/etc/init.d/mysqld stop

Запустите его снова и пропустите таблицы грантов

mysqld_safe --skip_grant_tables &
mysql> SELECT * FROM sql.user

Я вижу 4 пользователей, которых я ранее создал, но нет пользователя root. Я попытался поместить это в файл /root/rootreset.sql.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'my_pass' WITH GRANT OPTION;

И начиная с этого файла

mysqld_safe --init-file=/root/rootreset.sql &

[1] 30039
[root@algrhckdj ~]# Starting mysqld daemon with databases from /var/lib/mysql/
STOPPING server from pid file /var/run/mysqld/mysqld.pid
111020 04:06:34  mysqld ended
[1]+  Done                    mysqld_safe --init-file=/root/rootreset.sql

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

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

Я попытался запустить sql из консоли после запуска с --skip-grant-table но получил эту ошибку.

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Это кажется большой информацией, но я пробовал все различные предложения онлайн и нигде не могу получить. Что мне делать?

Помоги мне, суперпользователь, ты моя единственная надежда.

1 ответ1

3

Я следовал этим инструкциям, и теперь мой пользователь root указан в таблице user, и я могу войти с ним. Казалось, что он выполнял эти шаги как пользователь mysql, а не как root.

root# /etc/init.d/mysqld stop
root# su mysql
mysql$ pwd
/home/mysql
mysql$ echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'my_pass' WITH GRANT OPTION;"> mysql-init
mysql$ mysqld_safe --init-file=/home/mysql/mysql-init &
mysql$ rm mysql-init
mysql$ mysql -uroot -p   # woot, works

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