Установка пустого пароля для root-пользователя в MySQL 5.7

· mysql

Для локальной разработки с MySQL очень удобно использовать пустой пароль root-пользователя. Раньше его можно было задать пустым сразу при установке и спокойно работать. Начиная с версии MySQL 5.7 поведение изменилось.

Теперь, если при установке указывается пустой пароль пользователя root, то изменяется схема подключения для него с TCP/IP на локальный socket. Сделано это, как не трудно догадаться, в целях безопасности.

Выражается, например, в том, что команды вроде

$ mysql -uroot

отказываются работать. Нужно использовать для этого sudo. В том числе через sudo нужно запускать MySQL Workbench, что быстро надоедает.

Решение

Открываем консоль и пишем:

$ sudo mysql -uroot

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; 
mysql> flush privileges;
mysql> quit

Теперь можно спокойно соединяться с сервером MySQL, используя текущего пользователя:

$ mysql -uroot