Пароль по умолчанию mysql на сервере ubuntu 16.04

Я установил сервер ubuntu 16.04. Сервер Mysql был установлен по умолчанию в нем. Когда я пытаюсь получить доступ к mysql с помощью mysql -u root -p, я не могу войти в mysql, потому что у меня нет пароля. Есть ли пароль по умолчанию?

Я также пробовал с помощью --skip-grant-tables, даже это не работает. Даже попытка войти в систему с помощью только mysql -u root - это сбой.

Ответ 1

Это то, что вы ищете:
sudo mysql --defaults-file=/etc/mysql/debian.cnf
MySql на Debian-base Linux обычно использует файл конфигурации с учетными данными.

Ответ 2

Mysql по умолчанию имеет подключаемый модуль аутентификации пользователя root как auth_socket, который требует, чтобы системное имя пользователя и имя пользователя db были одинаковыми.

В частности, войдите в систему как root или sudo -i и просто введите mysql и вы sudo -i систему как mysql root, после чего вы сможете создавать других работающих пользователей.

Если у вас нет рута на хосте, я полагаю, вам не разрешено входить в mysql как root?

Ответ 3

У меня была свежая установка mysql-server на Ubuntu 18.10 и я не смог войти с паролем по умолчанию. Только тогда я узнал, что по умолчанию пользователь root проходит аутентификацию с использованием auth_socket. Как и в ответе, когда плагин изменился на mysql_native_password, мы можем использовать пароль по умолчанию для MySQL

$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf

Вы можете найти следующие строки там

user     = debian-sys-maint
password = password_for_the_user

Тогда:

$ mysql -u debian-sys-maint -p
Enter password: 

введите пароль от debian.cnf

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; 

Либо:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Или:

//Для MySQL 5. 7+

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';

--Update--

Иногда вам нужно будет перезапустить ваш сервер MySQL.

sudo service mysql restart

или

sudo systemctl restart mysql

Ответ 4

Вы можете просто сбросить пароль root, запустив сервер с помощью -skip-grant-tables и войдя в систему без пароля, запустив следующую команду: root или sudo:

service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

# service mysql stop
# service mysql start
$ mysql -u root -p

Ответ 5

  1. первым вы должны остановить mysql
  2. используйте эту команду sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. а затем mysql -u root попробуйте этот путь, я решил проблему с этим методом.

Ответ 6

Хотя это старый вопрос, некоторые из нас все еще пытаются найти ответ. По крайней мере, я сделал. Пожалуйста, не следуйте всем длинным решениям. Вы можете просто войти в свой mysql как root без предоставления пароля (при условии, что это новая установка или вы не меняли пароль с момента установки), добавив sudo перед вашей командой mysql. $sudo mysql -uroot -p mysql> Это связано с тем, что mysql изменил модель безопасности в одной из последних версий.

Надеюсь это поможет

Ответ 7

Я думаю, что еще одно место для поиска - /var/lib. Если вы поедете туда, вы увидите три папки mysql с "интересными" разрешениями:

user   group 
mysql  mysql

Вот что я сделал для решения моей проблемы с паролем root:

после запуска

sudo apt-get purge mysql*
sudo rm -rf /etc/mysql

Я также запускал следующее (вместо my_username put yours):

cd /var/lib
sudo chown --from=mysql <my_username> mysql* -R
sudo rm -rf mysql*

А потом:

sudo apt-get install mysql-server

который побудил меня выбрать новый пароль root. Я надеюсь, что это помогает

Ответ 8

Просто запустите sudo dpkg-reconfigure mysql-server-5.7

Вы можете найти версию, которую вы установили, запустив dpkg --get-selections | grep mysql-server dpkg --get-selections | grep mysql-server

Ответ 9

  Обратите внимание, что в системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), корневой пользователь MySQL настроен на аутентификацию с использованием плагина auth_socket по умолчанию, а не с паролем. вам нужно будет переключить метод аутентификации с auth_socket на mysql_native_password

как сказал @BeNiza, они изменили модель безопасности. Я сделал следующие шаги, и это работает для MySQL 5.7.27 на Ubuntu 18.04

sudo apt install mysql-server

Программное обеспечение базы данных MySQL установлено, но его настройка еще не завершена.

Чтобы обезопасить установку, MySQL поставляется со скриптом, который спрашивает, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите сценарий, набрав:

sudo mysql_secure_installation

Вы должны нажать Y и нажимать клавишу ENTER при каждом запросе.

Это приведет к проблемам, если вы используете слабый пароль

Вы можете просто войти в свой mysql как пользователь root без указания пароля, добавив sudo перед вашей командой mysql.

sudo mysql

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';

Если вы установите слабый пароль, вы увидите следующую ошибку:

ОШИБКА 1819 (HY000). Ваш пароль не соответствует требованиям текущей политики

mysql> FLUSH PRIVILEGES;

mysql> exit

Примечание. После настройки вашего корневого пользователя MySQL для аутентификации по паролю вы больше не сможете получить доступ к MySQL с помощью команды sudo mysql, использовавшейся ранее. Вместо этого вы должны выполнить следующее: mysql -u root -p

После ввода пароля, который вы только что установили, вы увидите приглашение MySQL.