MySQL сказал: Не удается подключиться: неверные настройки в xampp? [Дубликат]

шаблон text = <<"HERE" This Is A Multiline String HERE недоступен в js (я помню, как много использовал его в своих добрых старых днях Perl).

Чтобы контролировать работу сложных или длинных многострочных строк, я иногда использую шаблон массива:

var myString = 
   ['
', 'some content
', 'someRefTxt', '
' ].join('\n');

или анонимный шаблон уже показал (escape newline), который может быть уродливым блоком в вашем коде:

    var myString = 
       '
\ some content
\ someRefTxt \
';

Вот еще один странный, но работающий «трюк» 1 :

var myString = (function () {/*
   
some content
someRefTxt
*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];

внешнее редактирование: jsfiddle

[ дополнение 2015 ] ES6 поддерживает привязку строк к нескольким строкам с использованием строк шаблона :

let str = `This is a text
    with multiple lines.
    Escapes are interpreted,
    \n is a newline.`;
let str = String.raw`This is a text
    with multiple lines.
    Escapes are not interpreted,
    \n is not a newline.`;

1 Примечание: это будет потеряно после минификсации / обфускации ваш код

16
задан Lucas Noetzold 20 April 2018 в 19:22
поделиться

8 ответов

Войдите в консоль MySQL с пользователем root:

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

и измените плагин аутентификации с указанным там паролем:

mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

Вы можете прочитать больше информации о плагине предпочтительной аутентификации в Справочном руководстве MySQL 8.0

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series .html # upgrade-caching-sha2-password

Он отлично работает в докеретированной среде:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest

docker exec -it mysql bash

mysql -u root -pPASSWORD

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

exit

exit

docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

Итак, теперь вы можете войти в phpMyAdmin на http: // localhost: 8080 с root / PASSWORD

20
ответ дан András Szabácsik 16 August 2018 в 01:31
поделиться
  • 1
    Будьте здоровы. Я потратил много времени, пытаясь понять это. Кстати, в MacOS при использовании phpMyAdmin с Brew командой, которую я должен был запустить, было: ALTER USER root @ localhost ИДЕНТИФИЦИРОВАН С mysql_native_password BY 'secret' (В противном случае я получил & ERROR 1396 (HY000): операция ALTER USER не удалась для 'корень' @ '%') – user64141 14 July 2018 в 17:03

Как упоминалось в @kgr, MySQL 8.0.11 внесла некоторые изменения в метод аутентификации.

Я открыл отчет об ошибке phpMyAdmin об этом: https://github.com/phpmyadmin /phpmyadmin/issues/14220.

MySQL 8.0.4-rc отлично работал для меня, и я вроде как смешно для MySQL сделать такое изменение в выпуске уровня патча.

2
ответ дан Isaac Bennetch 16 August 2018 в 01:31
поделиться

Я решил эту проблему, выполнив следующие действия:

  1. Войдите в системные настройки -> mysql
  2. Выберите «Инициализировать базу данных» и введите новый пароль root, выбрав «Использовать Legacy Шифрование паролей ".
  3. Войдите в phpmyadmin с новым паролем.
2
ответ дан Juan Pablo Venditti 16 August 2018 в 01:31
поделиться
  • 1
    ОП не указал, что они находятся на Mac; однако он сказал нам, что он установил с помощью apt-get, который является Linux. Но ваш ответ для MacOS – Peter 12 July 2018 в 07:16

Новый MySQL 8.0.11 использует caching_sha2_password в качестве метода аутентификации по умолчанию. Я думаю, что phpMyAdmin не может понять этот метод аутентификации. Вам нужно создать пользователя с одним из старых методов проверки подлинности, например. CREATE USER xyz@localhost IDENTIFIED WITH mysql_native_password BY 'passw0rd'.

Подробнее здесь https://dev.mysql.com/doc/refman/8.0/en/create-user.html и здесь https: //dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html

7
ответ дан kgr 16 August 2018 в 01:31
поделиться

Как было указано в других ответах, изменение плагина аутентификации по умолчанию MySQL на native делает трюк.

Тем не менее, поскольку я не могу использовать новый caching_sha2_password , я подожду, пока не будет разработана совместимость для закрытия темы.

1
ответ дан Lucas Noetzold 16 August 2018 в 01:31
поделиться

Я пошел в систему

preferences -> mysql -> initialize database -> использовать устаревшее шифрование пароля (вместо сильного) -> ввести тот же пароль

в качестве файла config.inc.php, перезапустил сервер Apache, и он сработал. Я все еще подозревал об этом, поэтому я остановил сервер apache и mysql и начал их снова, и теперь он работает.

2
ответ дан Roshana Pitigala 16 August 2018 в 01:31
поделиться

Еще одна идея: до тех пор, пока phpmyadmin и другие инструменты php не работают с ней, просто добавьте эту строку в ваш файл /etc/mysql/my.cnf

default_authentication_plugin = mysql_native_password

См. также: Mysql Ref

Я знаю, что это проблема безопасности, но что делать, если инструменты не работают с caching_sha2_password?

8
ответ дан sneaky 16 August 2018 в 01:31
поделиться
  • 1
    правда ... надеюсь, что это скоро выйдет – Lucas Noetzold 21 April 2018 в 15:20
  • 2
    Ну, когда я думаю об этом, это не проблема безопасности, потому что перед v8 он всегда использует mysql_native_password – sneaky 21 April 2018 в 21:21
  • 3
    Этот параметр ini даже не помогает с MySQL 8.0.11 GA и последним на сегодняшний день PHPMyAdmin 4.8.0.1. PHPMyAdmin по-прежнему вызывает ошибку: mysqli_real_connect (): сервер запросил метод проверки подлинности, неизвестный клиенту [caching_sha2_password] – Alph.Dev 23 April 2018 в 15:04
  • 4
    Ну, похоже, что изменения не приняли. Вы перезапустили сервер MySQL и уверены, что другого файла конфигурации нет? – sneaky 23 April 2018 в 15:09
  • 5
    Да, перезапустил службу, перезапустил сервер, сделал новую установку MySQL 8.0.11, где вы можете установить метод проверки подлинности в пользовательском интерфейсе установщика. Не помогает. Мне удалось подключиться к вновь установленному серверу, и я увидел & quot; caching_sha2_password & quot; выбранный по умолчанию для root, в разделе «Пользователи и привилегии» в Workbench 8.0.11-rc. Я предполагаю, что это проблема. По настройке пользователя возможно переопределяет конфигурацию default_authentication_plugin. И значение по умолчанию для root устанавливается равным sha2 независимо от того, во время установки. – Alph.Dev 23 April 2018 в 15:50

Я решил эту проблему, выполнив следующие действия:

  1. Добавить default_authentication_plugin = mysql_native_password в раздел [mysqld] my.cnf
  2. Введите mysql и создайте нового пользователя сделав что-то вроде CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
  3. При необходимости предоставите привилегии. Например. GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';, а затем FLUSH PRIVILEGES;
  4. Войдите в phpmyadmin с новым пользователем
6
ответ дан user1706897 16 August 2018 в 01:31
поделиться
  • 1
    Я попробовал просто создать пользователя с mysql_native_password, но mysqli все еще не удалось подключиться. Вы должны изменить default_authentication_plugin, чтобы это работало, как описано в сообщении пользователя1706897. Я добавляю голосование на этот ответ. – PeteH 9 June 2018 в 15:33
Другие вопросы по тегам:

Похожие вопросы: