При запуске сервера mysql 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.
Как это исправить?
$ sudo /etc/init.d/mysql stop
спасибоsudo
это решит эту проблему, поскольку этот каталог будет удален послеmysql
остановки и безsudo
него не будет доступа к этим папкам !!!Когда я использовал код,
mysqld_safe --skip-grant-tables &
но получаю сообщение об ошибке:$ systemctl stop mysql.service $ ps -eaf|grep mysql $ mysqld_safe --skip-grant-tables &
Теперь я использую тот же код
mysqld_safe --skip-grant-tables &
и получаюЕсли я воспользуюсь,
$ mysql -u root
я получу:Версия сервера: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Авторское право (c) 2000, 2017, Oracle и / или ее дочерние компании. Все права защищены.
Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее дочерних компаний. Другие наименования могут быть торговыми марками их владельцев.
Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить текущий оператор ввода.
mysql>
mysql> use mysql mysql> describe user;
Чтение информации таблицы для завершения имен таблиц и столбцов. Вы можете отключить эту функцию, чтобы ускорить запуск, с помощью -A.
База данных изменена
mysql> FLUSH PRIVILEGES; mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
или Если у вас есть учетная запись root mysql, которая может подключаться отовсюду, вам также следует сделать:
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 и остановить / запуститьFLUSH PRIVILEGES; sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start
теперь снова `mysql -u root -p 'и используйте новый пароль, чтобы получить
источник
Работайте у меня в 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
источник
Вы можете попробовать следующее, если в вашей базе данных нет данных ИЛИ у вас есть другой, чтобы восстановить эти данные. Вам нужно будет знать пароль root сервера Ubuntu, но не пароль root mysql.
Весьма вероятно, что многие из нас установили mysql_secure_installation, так как это лучшая практика. Перейдите в каталог bin, в котором существует mysql_secure_installation. Его можно найти в каталоге / bin в системах Ubuntu. При повторном запуске установщика вам будет предложено изменить пароль корневой базы данных.
источник