mariadb起動エラー


一、前言
mariadbのインストールが完了すると、デフォルトのデータディレクトリは/var/lib/mysqlです.スペースの増加/varスペースの不足を避けるために、データディレクトリを/data/soft/mysqlに移動します.
二、具体的な操作手順
1.mariadbデータベースを閉じる
[root@centos7 ~]# systemctl stop  mariadb.service

2.コピー/var/lib/mysqlから/data/soft/mysqlへ
[root@centos7 soft]# cp -rp /var/lib/mysql/* /data/soft/mysql
[root@centos7 soft]# ls -ld mysql/*
-rw-rw---- 1 mysql mysql    16384 Apr 18 10:57 mysql/aria_log.00000001
-rw-rw---- 1 mysql mysql       52 Apr 18 10:57 mysql/aria_log_control
-rw-rw---- 1 mysql mysql 18874368 Apr 18 10:57 mysql/ibdata1
-rw-rw---- 1 mysql mysql  5242880 Apr 18 10:57 mysql/ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Apr 18 10:55 mysql/ib_logfile1
drwx------ 2 mysql mysql     4096 Apr 18 10:55 mysql/mysql
drwx------ 2 mysql mysql     4096 Apr 18 10:55 mysql/performance_schema
drwx------ 2 mysql mysql        6 Apr 18 10:55 mysql/test

3./var/lib/mysqlディレクトリを削除し、/data/soft/mysqlへのソフトリンクを作成
[root@centos7 lib]# rm -rf mysql
[root@centos7 lib]# ln -s /data/soft/mysql/ mysql
[root@centos7 lib]# ll mysql
lrwxrwxrwx 1 root root 17 Apr 18 11:13 mysql -> /data/soft/mysql/
[root@centos7 lib]# ls -ld mysql/*
-rw-rw---- 1 mysql mysql    16384 Apr 18 10:57 mysql/aria_log.00000001
-rw-rw---- 1 mysql mysql       52 Apr 18 10:57 mysql/aria_log_control
-rw-rw---- 1 mysql mysql 18874368 Apr 18 10:57 mysql/ibdata1
-rw-rw---- 1 mysql mysql  5242880 Apr 18 10:57 mysql/ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Apr 18 10:55 mysql/ib_logfile1
drwx------ 2 mysql mysql     4096 Apr 18 10:55 mysql/mysql
drwx------ 2 mysql mysql     4096 Apr 18 10:55 mysql/performance_schema
drwx------ 2 mysql mysql        6 Apr 18 10:55 mysql/test

4.mariadbデータベースの起動
[root@centos7 lib]# systemctl start mariadb.service
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

エラー:ログの表示
[root@centos7 lib]# tail /var/log/mariadb/mariadb.log
160418 11:16:37 [Note] Server socket created on IP: '0.0.0.0'.
160418 11:16:37 [ERROR] Can't start server : Bind on unix socket: Permission denied
160418 11:16:37 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
160418 11:16:37 [ERROR] Aborting
160418 11:16:37  InnoDB: Starting shutdown...
160418 11:16:38  InnoDB: Shutdown completed; log sequence number 1597945
160418 11:16:38 [Note] /usr/libexec/mysqld: Shutdown complete
160418 11:16:38 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

/var/run/mariadbディレクトリ権限の表示:
[root@centos7 lib]# ls -ld /var/run/mariadb
drwxr-xr-x 2 mysql mysql 40 Apr 18 10:57 /var/run/mariadb

これは間違いないでしょう...
/data/soft/mysqlの権限を調べます.
[root@centos7 lib]# ls -ld /data/soft/mysql
drwxr-xr-x 5 root root 151 Apr 18 11:11 /data/soft/mysql

問題はここにあるようです.ライセンス所有者、すべてのグループはmysqlです.
drwxr-xr-x 5 root root 151 Apr 18 11:11 /data/soft/mysql
[root@centos7 lib]# chown mysql.mysql /data/soft/mysql
[root@centos7 lib]# ls -ld /data/soft/mysql
drwxr-xr-x 5 mysql mysql 151 Apr 18 11:11 /data/soft/mysql

再起動:
[root@centos7 lib]# systemctl start mariadb.service
[root@centos7 lib]# lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  7275 mysql   14u  IPv4  98512      0t0  TCP *:mysql (LISTEN)

OK、成功しました.
注意:このエラーは、先ほどのレプリケーションでは次のように発生しません.
cp -rp /var/lib/mysql /data/soft/

本文は“Hello,Linux”のブログから出て、転載して作者と連絡してください!