8 ответов
Лучший ответ
Драйвер подключения MySQL не получает никакого значимого сервера в местоположении localhost. Так что используйте,
Скорее, чем
43
Subarata Talukder
12 Авг 2017 в 15:27
Ни один из других ответов не помог мне. У меня MySQL 8.0.22 установлен на моей Mac OS 10.14.6, отлично работает из командной строки. Однако при обновлении MySQL я выбрал более надежное шифрование паролей. Это была проблема, а не конфигурация localhost. Config.inc.php может указывать либо на localhost, либо на 127.0.0.1. Как только я запустил phpMyAdmin, я подтвердил это, используя оба.
Чтобы исправить это (для меня), нужно было щелкнуть системные настройки Mac и выбрать MySQL. Нажмите «Инициализировать базу данных» и переключитесь на «Устаревшее шифрование паролей». Перезагрузите и все работает нормально. MySQL перезагружается, phpMyAdmin на http: // localhost / phpmyadmin позволяет мне без проблем войти в систему.
Я жду обновления Mac до OS 15, если уверен, что не стану кирпичом эту глупую штуку.
Dharman
12 Дек 2020 в 15:30
Также была эта проблема. Единственное решение, которое мне помогло — сначала остановить сервер mysql командой «service mysql stop», а затем снова запустить start lampp: «sudo / opt / lampp / lampp start».
rvk220
3 Дек 2020 в 19:29
У меня была такая же проблема, в моем случае сайт долгое время работал нормально. Поскольку многие ответы здесь касаются установки и использования в первый раз, я решил решить ту же проблему для систем, которые уже некоторое время функционируют должным образом, а затем внезапно дают эту ошибку.
Сначала я думаю, что важно разобраться в проблеме. Насколько мне известно (и я могу ошибаться), эта проблема возникает, если драйвер не может защитить соединение с базой данных
Это может быть вызвано многими причинами, в том числе отключением базы данных из-за какой-либо проблемы или обслуживания.
В моем случае проблема была вызвана тем, что я зашел на сайт во время обновления MySQL (Software Updater работал в фоновом режиме, обновляя компоненты MySQL). Поэтому мне пришлось дождаться завершения обновления, затем веб-сайт снова заработал без проблем.
Так что имейте в виду и этот аспект.
Marius
10 Май 2019 в 16:03
Предлагаю вам включить и посмотреть подробный журнал php_errors.log
Убедитесь, что каталог, указанный с помощью session.save_path в php.ini, существует и доступен для записи. Вы можете использовать phpinfo (), чтобы показать фактический session.save_path.
Создание отсутствующего каталога «phptmp», указанного как session.save_path, устранило эту проблему для меня.
relish
20 Июн 2017 в 23:19
У меня была такая же проблема. Я использовал хост, определенный в моем файле / etc / hosts:
127.0.0.1 test.localhost
‘hostname’ => ‘localhost’,
Чтобы :
‘hostname’ => ‘test.localhost’,
Phil Smith
22 Дек 2015 в 20:09
У меня эта ошибка
Из PhpMyAdmin, работающего на моем Mac Mojave, с сервером MySQL, также работающим на моем Mac.
Исправил редактированием и изменил строку:
К
3
Michal J Figurski
3 Фев 2020 в 16:26
Та же проблема возникла у меня с AWS RDS MySQL. Смотрел разные источники, но на эту ветку почти все без ответа. Хотя этот ответ помог мне, помните, что нужно обновить имена хостов на сервере. Войдите в свой SSH и выполните следующие действия:
Теперь добавьте сюда ваши имена хостов: Например:
А теперь настраиваем следующим образом:
Где — ваш общедоступный IP-адрес IPv4 , расположенный по адресу IP (’35 .150.12.345 ‘).
Примечание
Обратите внимание, что с параметром hostname будет работать только IPV4. hostname, cname, domains будут выводить ошибку подключения к базе данных
3
Community
23 Май 2017 в 12:17
ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
ls
- Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
- ls -R
- Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
- ls /home
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
ls -l /home/
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
cd Desktop
Вы также можете указать полный путь к папке:
cd /usr/share/
Команда cd … переходит в папку, которая находится выше на одну в файловой системе:
cd …
Вы также можете вернуться в предыдущую рабочую папку:
cd —
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
rm file
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
- rm /usr/share/file
- Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
- rm -r /home/user/photo/
- Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
rmdir directory
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
7. mkdir — создать папку
- Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
- mkdir test
- Если нужно создать папку в другом каталоге, укажите полный путь к нему:
- mkdir /home/user/test
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
- ln -s /home/user/Downloads/ /home/user/test/
- Для создания жесткой ссылки никаких опций задавать не нужно:
- ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
- chmod +x script.sh
- Чтобы убрать флаг исполняемый используйте опцию -x:
- chmod -x script.sh
- Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
- Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
- touch file
- Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
Проблемы с драйверами и ядром
Проблемы с драйверами, модулями ядра или прошивками могут вызвать много неприятностей во время загрузки системы. Это может быть просто медленная загрузка системы, неработоспособность определенных устройств неправильная работа видео или полная невозможность запустить графическую подсистему. Исправление ошибок Linux начинается с просмотра логов.
Вы можете посмотреть все сообщения ядра с момента начала загрузки, выполнив команду чтобы узнать какую linux выдает ошибку:
Чтобы иметь возможность удобно листать вывод можно выполнить:
Или сразу выбрать все ошибки:
Дальше будет очень просто понять какого драйвера не хватает, что система не может загрузить или что нужно установить. Если возникает ошибка ввода-вывода linux, то, скорее всего, драйвер несовместим с вашим устройством, в таком случае, может помочь обновление ядра, чтобы получить самую новую версию драйвера. В некоторых случаях ядро может само предложить вариант решения проблемы прямо в сообщении об ошибке вплоть до того какую команду выполнить или какой файл скачать. Если же нет, вы все еще можете воспользоваться поиском для решения своей проблемы linux.
Использование команды в числовом виде
Права записываются одной строкой сразу для трёх типов пользователей:
- владельца файла (u);
- других пользователей, входящих в группу владельца (g);
- всех прочих пользователей (o);
В числовом виде файлу или каталогу устанавливаются абсолютные права , в то же время в символьном виде можно установить отдельные права для разных типов пользователей.
Пример: в числовом виде, установить права rwx-rx-rx:
chmod 755 filename
Пример — значение права «755»
Владелец | Группа | Остальные | |
---|---|---|---|
восьмеричное значение | 7 | 5 | 5 |
символьная запись | rwx | r-x | r-x |
обозначение типа пользователя | u | g | o |
Таким образом, права «755» записываются в символьном виде как «rwxr-xr-x». При этом для понимания сути задания прав в Unix-системах полезно знать представление чисел в двоичной системе счисления.
Варианты записи прав пользователя
двоичная | восьмеричная | символьная | права на файл | права на директорию |
---|---|---|---|---|
000 | — | нет | нет | |
001 | 1 | —x | выполнение | чтение файлов и их свойств |
010 | 2 | -w- | запись | нет |
011 | 3 | -wx | запись и выполнение | всё, кроме чтения списка файлов |
100 | 4 | r— | чтение | чтение имён файлов |
101 | 5 | r-x | чтение и выполнение | доступ на чтение |
110 | 6 | rw- | чтение и запись | чтение имён файлов |
111 | 7 | rwx | все права | все права |
Часть разрешений имеет смысл только в сочетании с другими. Из первых четырёх пунктов (не дающих права на чтение файла) для файлов обычно используется только «—», то есть полный запрет доступа к файлу данному типу пользователей. Для директорий из всего списка обычно применяются только 0, 5 и 7 — запрет, чтение и выполнение, и полный доступ.
Суммировав эти коды для трёх типов пользователей, можно получить числовую или символьную запись. Например, chmod 444 {имяфайла}: 400+40+4=444 — все имеют право только на чтение (идентично «r—r—r—»).
Помимо стандартных разрешений ‘rwx’, команда chmod осуществляет также управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.
Для SUID вес — 4000, а для SGID — 2000. Данные атрибуты имеют смысл при установленном соответствующем бите исполнения и обозначаются при символьной записи буквой «s»: и соответственно.
Пример: chmod 4555 {имяфайла} — все имеют право на чтение и выполнение, но запускаться файл на исполнение будет с правами владельца.
Установка SGID для директории приведёт к установке принадлежности каждого нового создаваемого файла к той же группе, к которой принадлежит сама директория, а не к основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет смысла.
sticky bit или restricted deletion flag (t-бит) используется только с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить (переименовать) любой пользователь, имеющий доступ на запись к данному файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что удалить (переименовать) файл может только владелец этого файла. Следуя приведённой выше кодировке, t-бит имеет вес 1000.
Примечание: Право на запись (w) даёт пользователю возможность записывать или изменять файл, а право на запись для каталога — возможность создавать новые файлы или удалять файлы из этого каталога. Если на каталоге стоит возможность записи (w), то файл внутри этого каталога можно будет удалить, даже если право на запись для него не установлено. (В соответствии с концепцией файловой системы POSIX).
Популярные значения
— Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия — Все пользователи имеют право чтения; владелец может редактировать — Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий — Все пользователи имеют право чтения; владелец и группа могут редактировать — Все пользователи могут читать и редактировать — Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия — Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение — Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать — Каждый пользователь может читать, редактировать и запускать на выполнение — Каждый пользователь имеет право читать и запускать на выполнение; удалить файл может только владелец этого файла — Каждый пользователь имеет право читать и запускать на выполнение с правами группы(user group) владельца файла — Владелец и группа имеет право чтения никто другой не имеет права выполнять никакие действия — Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла
Понимание прав доступа к файлам и владения в Linux
Теперь, когда вы знаете основную терминологию прав доступа и владения файлами, пришло время увидеть это в действии.
Вы можете использовать команду stat или команду ls для проверки прав доступа к файлу.
Если вы используете команду ls с опцией -l для файла, вы увидите такой вывод:
Позвольте мне объяснить этот вывод более подробно на примере данного изображения:
Позвольте мне подробнее объяснить весь вывод:
- Тип файла : обозначает тип файла. d означает каталог, — означает обычный файл, l означает символическую ссылку.
- Полномочия . В этом поле отображается набор разрешений для файла. Я объясню это подробно в следующем разделе.
- Жесткие ссылки : показывает, есть ли в файле жесткие ссылки. Количество по умолчанию — один.
- Пользователь : пользователь, которому принадлежат файлы.
- Группа : группа, которая имеет доступ к этому файлу. Только одна группа может быть владельцем файла одновременно.
- Размер файла : Размер файла в байтах.
- Время изменения : дата и время последнего изменения файла.
- Имя файла : Очевидно, имя файла или каталога.
Теперь, когда мы рассмотрели вывод команды ls -l, давайте сосредоточимся на части прав доступа к файлу.
В приведенной выше команде вы видите такое разрешение файла в девятизначном формате :
Каждая буква обозначает конкретное разрешение:
- r: разрешение на чтение
- w: разрешение на запись
- x: разрешение на выполнение файла
- -: разрешение не установлено
Права доступа всегда в порядке чтения, записи и выполнения, т. е. rwx. И затем эти разрешения устанавливаются для всех трех типов владельцев (см. Раздел «Владение») в порядке «Пользователь», «Группа» и «Другое».
Эта картина объяснит немного лучше:
Итак, если вы посмотрите на рисунок выше, вы можете сказать следующее о правах доступа к файлам:
- Файл имеет права на чтение, запись и выполнение для владельца пользователя. Но кто этот владелец использования файла? У вас есть эта информация в выводе ls -l (т.е. пользователь abhi).
- Файл имеет права на чтение и запись для группы, но не для выполнения. Какая это группа? У вас есть информация о группе в выходных данных команды ls -l (то есть группа itsfoss).
- Файл имеет разрешение на чтение только для Других, то есть для всех, кто имеет доступ к системе. Вам не нужно знать, что это за другой, потому что «другой» означает всех пользователей.
Теперь, если вы снова увидите всю команду ls -l, вы можете прочитать права доступа к файлу и владельца вместе.
Файл agatha.txt принадлежит пользователю abhi, и abhi имеет права на чтение, запись и выполнение. Все члены группы istfoss имеют доступ для чтения и записи к этому файлу, в то время как все остальные имеют доступ только для чтения к этому файлу.
Примечание. Корневой пользователь обладает сверхспособностями и обычно имеет разрешения на чтение, запись и выполнение для всех файлов, даже если вы не видите его в разрешениях для файлов.
Один пользователь может быть членом нескольких групп, но только основная группа пользователя является владельцем группы файла, созданного пользователем. Первичную группу пользователя можно найти с помощью команды id -gn <username> . Оставьте имя пользователя пустым, если вы пытаетесь найти свою основную группу.
Теперь, когда вы знаете, как узнать разрешения для файла, давайте посмотрим, как вы можете изменить разрешение и владельца файла.
Они уже используются
Обеспечение безопасности многопользовательской операционной системы связано с несколькими трудностями. Возьмем, к примеру, (казалось бы) базовую концепцию паролей. Все они должны быть сохранены, чтобы каждый раз, когда кто-то входит в систему, система могла сравнивать вводимый им пароль с сохраненной копией. Очевидно, что поскольку пароли — это ключи к королевству, их необходимо беречь.
В Linux сохраненные пароли защищены двумя способами: они зашифрованы, и только кто-то с правами root может получить доступ к файлу, содержащему пароли. Это может показаться прекрасным, но представляет собой затруднение: если только люди с привилегиями root могут получить доступ к сохраненным паролям, как те, у кого нет такого доступа, изменят свои пароли?
Проблемы с диском и файловой системой
Самая частая проблема с диском у новичков — это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.
Если это случилось, вам, скорее всего, придется переключиться в режим терминала и удалить несколько файлов. Вы можете удалять файлы логов или кэша пакетного менеджера. Много файлов удалять не нужно, достаточно освободить несколько мегабайт, чтобы прекратились ошибки системы linux и нормально работала графическая оболочка, а затем уже в ней решать все проблемы linux.
Команды Linux для управления процессами
25. kill / xkill / pkill / killall
Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill — достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.
26. ps / pgrep
Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.
27. top / htop
Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.
28. time
Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.
Пути файлов в Linux
Файловая система Linux очень сильно отличается от Windows. Мы не будем рассматривать ее структуру, это было сделано ранее. Мы сосредоточимся на работе с файлами.
Самое главное отличие, в том что адрес файла начинается не с диска, например, C: или D: как это происходит в Windows, а с корня, корневого системного каталога, к которому подключены все другие. Его адрес — /. И тут нужно сказать про адреса. Пути файлов linux используют прямой слеш «/» для разделения каталогов в адресе, и это отличается от того, что вы привыкли видеть в Windows — .
Например, если в Windows полный путь к файлу на рабочем столе выглядел C:UsersSergiyDesktop то в путь файла в linux будет просто /home/sergiy/desktop/. С этим пока все просто и понятно. Но проблемы возникают дальше.
В операционной системе Linux может быть несколько видов путей к файлу. Давайте рассмотрим какие бывают пути в linux:
- Полный, абсолютный путь linux от корня файловой системы — этот путь вы уже видели в примере выше, он начинается от корня «/» и описывает весь путь к файлу;
- Относительный путь linux — это путь к файлу относительно текущей папки, такие пути часто вызывают путаницу.
- Путь относительно домашний папки текущего пользователя. — путь в файловой системе, только не от корня, а от папки текущего пользователя.
Рассмотрим теперь подробнее как выглядят эти пути в linux, а также разберем несколько примеров, чтобы было окончательно понятно. Для демонстрации будем пользоваться утилитой ls, которая предназначена для просмотра содержимого каталогов.
Например, у нас есть такой каталог в домашней папке с четырьмя файлами в нем:
Вот так будет выглядеть полный путь linux к одному из файлов:
Это уже относительный путь linux, который начинается от домашней папки, она обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки, в нашем случае tmp:
Ну или путь файла в linux, относительно текущей папки:
В каждой папке есть две скрытые ссылки, мы сможем их увидеть с помощью ls, выполнив ее с параметром -a:
Первая ссылка указывает на текущую папку (.), вторая (..) указывает на папку уровнем выше. Это открывает еще более широкие возможности для навигации по каталогам. Например, чтобы сослаться на файл в текущей папке можно использовать конструкцию:
Это бесполезно при просмотре содержимого файла
Но очень важно при выполнении программы. Поскольку программа будет сначала искаться в среде PATH, а уже потом в этой папке
А потому, если нужно запустить программу, которая находится в текущей папке и она называется точно также как и та что в каталоге /bin, то без явной ссылки что файл нужно искать в текущей папке ничего не получится.
Вторая ссылка вам позволяет получить доступ к файлам в папке выше текущей. Например:
Такие конструкции могут довольно часто встречаться при компиляции программ. Все эти символы и пути файлов linux вы можете применять не только в терминале, но и в любом файловом менеджере, что может быть очень удобно.
Но терминал Linux предоставляет еще более широкие возможности. Вы можете использовать простые символы замены прямо в адресах файлов или каталогов. Например, можно вывести все файлы, начинающиеся на f:
Или даже можно искать не только в папке tmp, а в любой подпапке домашней папки:
И все это будет работать, возможно, это не всегда нужно и практично. Но в определенных ситуациях может очень сильно помочь. Эти функции реализуются на уровне оболочки Bash, поэтому вы можете применять их в любой команде. Оболочка смотрит сколько файлов было найдено и для каждого из них вызывает команду.
Выводы
У меня была проблема с Wi-Fi, которая до сих пор не решена из-за проблемы, которая возникла, когда я пытался ее решить.
Я нашел это решение для Wi-Fi, поэтому попробовал его:
Вставьте в конфиг этот текст
Я заметил, что у меня не было разрешения на запись или выполнение файла, поэтому я попытался использовать chmod решить проблему. Это упорядоченный список всех операций, которые я сделал и которые привели к проблеме этого вопроса:
После третьей или четвертой команды (я не уверен, какая из них) я потерял свои права администратора; на самом деле, если я пытаюсь использовать команду sudo он выводит 3 строки, которые я переведу как можно лучше:
На терминале отображается
Теперь, когда я открываю терминал, он выводит мне строку bash /etc/profile: Permission denied, которую я никогда раньше не видел, и пропущенная часть имени необычна, потому что вместо нее следует писать zenoraiser.
Что вы предлагаете мне сделать?