При входе в систему как администратор домена я иногда не могу использовать функцию удаленного управления и получаю сообщение " Отказано в доступе "сообщение об ошибке (или из procmon.exe с помощью sysinternals" Remote Control: null ") ... В Fedora: # su # systemtcl stop mariadb # cp -rp / var / lib / mysql / home # chown mysql.mysql / home / mysql Затем я редактирую файл /etc/my.cnf.d/...
, после установки я пытаюсь переместить расположение базы данных На Fedora:
# su
# systemtcl stop mariadb
# cp -rp /var/lib/mysql /home
# chown mysql.mysql /home/mysql
Затем я редактирую файл /etc/my.cnf.d/mariadb-server.cnf
от
[mysqld]
datadir=/var/lib/mysql/
socket=/var/lib/mysql.sock
до
[mysqld]
datadir=/home/mysql/
socket=/home/mysql.sock
, затем
# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
Итак
systemctl status mariadb
● mariadb.service - MariaDB 10.0 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2016-06-29 17:51:18 CEST; 29s ago
Process: 6488 ExecStopPost=/usr/libexec/mysql-wait-stop (code=exited, status=0/SUCCESS)
Process: 3103 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 6304 ExecStartPost=/usr/libexec/mysql-wait-ready $MAINPID (code=exited, status=1/FAILURE)
Process: 6303 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=1/FAILURE)
Process: 6259 ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Process: 6231 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 6303 (code=exited, status=1/FAILURE)
Jun 29 17:51:17 123PUB-PC systemd[1]: Starting MariaDB 10.0 database server...
Jun 29 17:51:17 123PUB-PC mysqld_safe[6303]: 160629 17:51:17 mysqld_safe Logging to '/var/log/maria...g'.
Jun 29 17:51:17 123PUB-PC mysqld_safe[6303]: mkdir: impossible de créer le répertoire « /home/mysql…xiste
Jun 29 17:51:17 123PUB-PC mysqld_safe[6303]: Fatal error Can't create database directory '/home/mys...ck'
Jun 29 17:51:17 123PUB-PC systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Jun 29 17:51:18 123PUB-PC systemd[1]: mariadb.service: Control process exited, code=exited status=1
Jun 29 17:51:18 123PUB-PC systemd[1]: Failed to start MariaDB 10.0 database server.
Jun 29 17:51:18 123PUB-PC systemd[1]: mariadb.service: Unit entered failed state.
Jun 29 17:51:18 123PUB-PC systemd[1]: mariadb.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
Кажется, что mysql не имеет разрешения на запись в home / mysql, но:
# ls -la /home/mysql
drwxr-xr-x. 4 mysql mysql 4096 Jun 29 17:38 .
drwxr-xr-x. 5 root root 4096 Jun 29 17:54 ..
-rw-rw----. 1 mysql mysql 16384 Jun 29 17:38 aria_log.00000001
-rw-rw----. 1 mysql mysql 52 Jun 29 17:38 aria_log_control
-rw-rw----. 1 mysql mysql 12582912 Jun 29 17:38 ibdata1
-rw-rw----. 1 mysql mysql 50331648 Jun 29 17:38 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 Jun 29 17:05 ib_logfile1
-rw-rw----. 1 mysql mysql 0 Jun 29 17:05 multi-master.info
drwx------. 2 mysql mysql 4096 Jun 29 17:05 mysql
-rw-r--r--. 1 mysql mysql 16 Jun 29 17:05 mysql_upgrade_info
drwx------. 2 mysql mysql 4096 Jun 29 17:05 performance_schema
Я не вижу разницы с основным каталогом.
И что дальше?
Это проблема SELinux. Но чтобы убедиться в этом, отключите принудительное исполнение только для тестирования.
Тестирование
Выполните это на своем сервере (только root), чтобы временно отключить SELinux
# setenforce 0
Теперь вы можете запустить сервер
# systemctl start mariadb
Подключиться с помощью клиента mysql, но сначала измените конфигурацию в файле /etc/my.cnf.d/client.cnf
, чтобы использовать новый файл сокета.
#
# These two groups are read by the client library
# Use it for options that affect all clients, but not the server
#
[client]
socket=/home/mysql/mysql.sock
# This group is not read by mysql client library,
# If you use the same .cnf file for MySQL and MariaDB,
# use it for MariaDB-only client options
[client-mariadb]
Если все было в порядке, вы сможете подключиться к вновь обнаруженной базе данных .
Остановить сервер
# systemctl stop mariadb
Постоянное решение с конфигурацией SELinux
SELinux предотвращает работу mysqld (чтение, запись, доступ) в любом каталоге, кроме каталога по умолчанию.
Чтобы преодолеть это, вам нужно изменить это поведение, чтобы SELinux предоставлял разрешения для вашего нового местоположения.
Получите контекст. Список может отличаться, но должен отображать контекст mysqld_db_t .
# ls -lZ /var/lib/mysql
drwx------. mysql mysql unconfined_u:object_r:mysqld_db_t:s0 mysql
Добавьте полученный контекст ( mysqld_db_t ) в сопоставление для / home / mysql
.
# semanage fcontext -a -t mysqld_db_t "/home/mysql(/.*)?"
Применить. контекст
# restorecon -R -v /home/mysql
Убедитесь, что контекст применен.
# grep -i mysql /etc/selinux/targeted/contexts/files/file_contexts.local
/home/mysql(/.*)? system_u:object_r:mysqld_db_t:s0
# ls -lZ /home/mysql
drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql
Теперь все на месте. У вас не должно возникнуть проблем с усилением SELinux и установкой вашего сервера.
# setenforce 1
# systemctl start mariadb