безопасный каталог mysqld '/var / run/mysqld ' для файла сокета UNIX не существует
при запуске mysql server 5.7.17 с помощью mysqld_safe, после ошибки occcours.
2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
Как это исправить ?
4 ответов:
Кажется странным, что этот каталог не был создан при установке - вы вручную изменили путь к файлу сокета в my.cfg?
вы пробовали просто создать этот каталог самостоятельно и перезапустить службу?
mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld
когда я использовал код
mysqld_safe --skip-grant-tables &но я получаю ошибку:каталог mysqld_safe '/var/run / mysqld' для файла сокета UNIX не существует.
$ systemctl stop mysql.service $ ps -eaf|grep mysql $ mysqld_safe --skip-grant-tables &решил:
$ mkdir -p /var/run/mysqld $ chown mysql:mysql /var/run/mysqldсейчас я использую тот же код
mysqld_safe --skip-grant-tables &и вамmysqld_safe запуск демона mysqld с базами данных из /var / lib / mysql
если я использую
$ mysql -u rootя вам :сервер версия: 5.7.18-0ubuntu0.16.04.1 (Убунту)
Copyright (c) 2000, 2017, Oracle и/или ее филиалы. Все права защищены.
Oracle является зарегистрированным товарным знаком корпорации Oracle и/или ее филиалы. Другие наименования могут быть товарными знаками их соответствующих владельцы.
введите 'help;' или '\h ' для справки. Введите '\c', чтобы очистить текущий оператор ввода.
mysql>
теперь время, чтобы изменить пароль:
mysql> use mysql mysql> describe user;чтение табличной информации для завершения имен таблиц и столбцов Вы можете отключить эту функцию, чтобы получить более быстрый запуск с
база данных изменена
mysql> FLUSH PRIVILEGES; mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');или если у вас есть учетная запись MySQL root, которая может подключаться отовсюду, вы также должны сделать:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';Альтернативный Метод:
USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = 'localhost' AND User = 'root';и если у вас есть учетная запись root, можно получить доступ от везде:
USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = '%' AND User = 'root';`enter code hereтеперь нужно
quitиз mysql и stop / startFLUSH PRIVILEGES; sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql startтеперь снова 'mysql - u root-p' и использовать новый пароль, чтобы получить
mysql>
Работа для меня в CentOS:
$ service mysql stop $ mysqld --skip-grant-tables & $ mysql -u root mysql mysql> FLUSH PRIVILEGES; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; $ service mysql restart
вы можете попробовать следующее, если в вашей базе данных нет никаких данных или у вас есть другой, чтобы восстановить эти данные. Вам нужно будет знать пароль корня сервера Ubuntu, но не пароль корня mysql.
весьма вероятно, что многие из нас установили "mysql_secure_installation", как это рекомендуется. Перейдите в каталог bin, где существует mysql_secure_installation. Его можно найти в каталоге /bin на системах Ubuntu. При повторном запуске программы установки вы будете будет предложено изменить пароль корневой базы данных.
Comments