Как изменить сопоставление кодировки соединения с utf8mb4_general_ci?
Не получается изменить сопоставление кодировки соединения utf8mb4_general_ci на utf8_general_ci. При попытке соединения в phpmyadmin появляется сообщения внизу панели "Вы подключились как 'root' без ввода пароля, что характерно для стандартных настроек MySQL аккаунта. MySQL сервер, запущенный с данными настройками, открыт для вторжений. Вам следует исправить данную погрешность, установив пароль для пользователя 'root'."
Не получается даже войти под другим пользователем в систему, он сразу входит в панель под root и без пароля. Через учетные записи пользователей хотел поставить на root пароль - упал весь phpmyadmin, приходилось переустанавливать.
Развернул все через xampp. Версия php - 5.6.28. Версия MySQL - 4.5.1.
Все таблицы с нужной кодировкой стоят и вся бд созданная тоже. Помогите, я работаю на стеке js (вообще божественно и клиент и сервер) а сейчас нужно выполнить работу на этой ублюдочной связке с вечными проблемами в кодировке. Пересмотрел кучу решений, нигде ничего не подходит для решения проблемы.
Александр Дегтярев: я не понял причём тут .htaccess но вы спрашивали что кодировка с mysql сервером была сопоставлена как utf8mb4_general_ci я дал код как в my.cnf изменить.
Андрей: ну смотрите, я выложу этот сайт на хостинг а будет такая же штука с кодировкой но там я уже не смогу иметь доступ к этому файлу? Или также смогу создать файл my.ini?
Александр Дегтярев: вы клиенту делаете как я понял? Ну если там VPS то у вас соотвественно будет доступ рута и вы сможете поменять my.cnf а если виртуальный хостинг то тут не подскажу ну наверное либо как вы сказали можно там создавать свой my.ini будет либо в панеле может у хостера прямо будут эти настройки клиенту выведены.
Андрей: либо все же можно будет в phpmyadmib поменять и он будет сохранятся, я так понял проблема была в том что кодировка не сохранялась через панель управления СУБД (phpmyadmin)? Я спрашиваю потому что в этой области знаю очень мало но хочу познать, весь этот стек не очень интуитивный. Для меня было открытие что там миллион кодировок а нужную чтобы поставить нужно танцевать с бубном
Александр Дегтярев: я если честно ничего не менял через phpmyadmin такие кодировки не уверен что там есть такая возможность. Всё как правило меняется через my.cnf (в вашем случае это как я понимаю my.ini).
Андрей: Там есть пункт на главном экране "Сопоставление кодировки соединения" в котором и стоит название "utf8md4_general_ci" это именно как я понял кодировка соединения. Поменять ее у меня не получается, просто выбрав из списка нужную. Он просто возвращает старую и пишет что я зашел без пароля и потому все будет по умолчанию. но окна авторизации вначале не было - потому и зашел как root без пороля
Александр Дегтярев: На нормально настроенном сервере (хостинге) такой ошибки не будет, так как база будет с паролем :)
На локалке у вас не стоит пароль (что, кстати, очень плохо в случае открытого порта - установите его). Вот и phpmyadmin ругается.
Andrzej Wielski: а подскажите, как мне на rootпоставить пароль чтобы все не рухнуло, я поставил пароль в настройках и сразу пошли ошибки и капец... а другого пользователя если сделать о как мне под него зайти если он автоматически под рутом заходит?))
Александр Дегтярев: Если такой страницы нет (старая версия, какая-то модификация) - перейдите в phpmyadmin, и выполните sql команду:
UPDATE mysql.user SET Password=PASSWORD('тут ваш пароль') WHERE User='root'; FLUSH PRIVILEGES;
Далее откройте файл /phpmyadmin/config.inc.php (из вашей папки xampp), найдите $cfg\['Servers'\]\[$i\]['password'] = ''; и вставьте в эту переменную ваш пароль.
Александр Дегтярев: Выполните SHOW VARIABLES LIKE 'char%';
Посмотрите, в каких переменных левая кодировка, и поменяйте ее вручную в my.cnf (или my.ini в случае Windows).
Скорее всего проблема в невозможности записи в данный файл. Проверьте, не закрыт ли он для записи.
К слову, на хостингах все должно быть нормально и танцев с бубнами не будет.
Александр Дегтярев: А вы перезапускали сервер после изменений в файле? Они берутся из файла, но хранятся во временной таблице, которая обновляется с каждым запуском сервера