2013-03-15 3 views
9

когда я вызов файл mysql_secure_installation я получаю сообщение об ошибке, какmysql_secure_installation «Не удается подключиться к локальному серверу MySQL через гнездо»

[[email protected] bin]$ ./mysql_secure_installation 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL 
     SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! 


In order to log into MySQL to secure it, we'll need the current 
password for the root user. If you've just installed MySQL, and 
you haven't set the root password yet, the password will be blank, 
so you should just press enter here. 

Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 
Enter current password for root (enter for none): 

но данный файл носок в my.cnf файла/дома/mysqk123 /tmp/mysql.sock и я использую rehhat linux 5.3 и mysql 5.1.47

Я знаю, что задачи, выполняемые скриптом mysql_secure_installation, могут выполняться вручную, но здесь я должен запустить скрипт [не разрешено выполнять задачу вручную]

любое предложение s, чтобы решить эту проблему, очень полезен для меня

ответ

14

Поскольку эта утилита предназначена для использования по стандартной установке, и потому, что он, кажется, не несет никакого параметра, я вижу очень мало вариантов:

  • временно настроить MySQL использовать местоположение сокета по умолчанию для времени процедуры (альтернативно, символическая ссылка из местоположения по умолчанию в ваше пользовательское местоположение может просто работать).
  • изменить скрипт mysql_secure_installation так, чтобы он использовал ваше собственное местоположение. Если я правильно ее понимаю, скрипт создает временный файл конфигурации, так как ./.my.cnf.$$ ($$ - это pid) вокруг строки 46 в подпрограмме make_config.

Изменить следующим образом: (отказ от ответственности: не проверял :)

make_config() { 
    echo "# mysql_secure_installation config file" >$config 
    echo "[mysql]" >>$config 
    echo "user=root" >>$config 
    echo "password='$rootpass'" >>$config 
    # add the line below 
    echo "socket=/home/mysqk123/tmp/mysql.sock" >>$config 
} 

Опять же, этот сценарий предназначен для использования на уровне, вне установки окна. Сообщите своему боссу (или вашему клиенту), что если вы сможете настроить MySQL на использование нестандартного расположения сокетов, вы также можете запускать вручную простые команды, такие как удаление учетных записей и установка паролей.

+0

благодаря его работы – vidyadhar

+0

вы гений :) –

+0

По MySQL 5.7.2, 'mysql_secure_installation.sh' будет заменен бинарным, что принимает параметры в командной строке, в частности ['--socket = path'] (http://dev.mysql.com/doc/refman/5.7/en/mysql-secure-installation.html).Я еще не тестировал его, но я уточню ответ, когда узнаю об этом больше. – RandomSeed

4

Вы также можете сделать символическую ссылку на файл сокета, а затем удалите его:

ln -s /home/mysqk123/tmp/mysql.sock /var/lib/mysql/mysql.sock 
mysql_secure_installation # Do your stuff 
rm -rf /var/lib/mysql/mysql.sock 
1

Я была эта же ошибка происходит, и оказывается, я остановил службу MySQL и забыли перезапустить его. Таким образом, вы можете проверить состояние службы тузда, используя команду:

mysqladmin -u root -p status

Если вы получите сообщение об ошибке, это означает, что MySQL не работает, и вы можете запустить службу MySQL. Или, если вы предпочитаете, вы можете опрометчиво пытаться запустить службу без предварительной проверки его статус (который не будет работать, если он уже запущен), используя одну из следующих команд:

/etc/init.d/mysql start 
service mysql start 

Заменить mysqld с mysqld, если система использует эту версию MySQL.

2

Убедитесь, что вы начинаете MySQL или MariaDB, например:

sudo systemctl start mariadb.service 
sudo systemctl enable mariadb.service 
Смежные вопросы