В MySQL 5.7 поле password
в поле таблицы mysql.user
было удалено, теперь имя поля authentication_string
.
Сначала выберите базу данных:
mysql> use mysql;
А затем покажите таблицы:
mysql> show tables;
Вы найдете таблицу user
и увидите ее поля:
mysql> describe user;
Вы поймете, что нет поля с именем password
, поле пароля называется authentication_string
. Поэтому просто сделайте следующее:
update user set authentication_string=password('XXXX') where user='root';
Как предложил @Rui F Ribeiro, в качестве альтернативы вы можете выполнить:
mysql> SET PASSWORD FOR 'root' = PASSWORD('new_password');
Я не знаю, каков ваш вариант использования, но у меня редко бывают исполняемые файлы в моей веб-папке. А на производственных машинах я также удаляю разрешение на запись для большинства файлов.
Для частных случаев я храню отдельный файл, который включает все конкретные случаи, например, для каких папок требуется разрешение на запись или другой владелец, и использую его для перезаписи значений по умолчанию.
find /path/to/webroot/ -type f -exec chmod 644 -c '{}' \;
find /path/to/webroot/ -type d -exec chmod 755 -c '{}' \;
# change owner
chmod root:www-data /path/to/webroot/ -R
bash .fix-perm
где .fix-perm - это просто файл сценария
#.fix-perm
chmod g+w cache -R
chmod g+w logs -R
Это пройдёт по вашим файлам и установит исполняемый бит в зависимости от того, считает ли файл
, что файл должен быть исполняемым:
find /var/www/html -type f -exec bash -c 'if file -b "$1" | grep -q executable; then chmod +x "$1"; else chmod -x "$1"; fi' None {} \;
Команда find
очень похожа на вашу. Изменение заключается в добавлении команд bash. Их будет проще понять, если они распределены по нескольким строкам, например:
if file -b "$1" | grep -q executable
then
chmod +x "$1"
else
chmod -x "$1"
fi
Вы, конечно, можете изменить аргумент chmod
в соответствии со своими потребностями.