mysqlデータベースパスの変更

2727 ワード

yumを使用してmysqlデータベースをインストールする場合、彼がデフォルトで指定したデータパスは/var/lib/mysqlですが、実際にサーバにディスクを割り当てるときにサーバにデータを置くために特別なディスクを割り当てるので、mysqlのデータベースパスを変更する必要があります.mysqlデータベースパスの変更手順について説明します.
環境
centos6.x mysql 5.1.73
目的
デフォルトのデータベースパス:/var/lib/mysqlを/data/mysql/databaseに変更
私のmysqlデータベースが/dataディスクの下にインストールされていると仮定すると、データベース、ログ、pid、sockなどのファイルの保存パスは以下の通りです.
     
/data/mysql/database

       
/data/mysql/log/mysqld.log

   pid  
/data/mysql/run/mysqld.pid

   sock  
/data/mysql/mysql.sock

変更の開始
1、次のコマンドを入力して、関連パスを作成します.
mkdir -p /data/mysql/{database,log,run}
chown mysql:mysql /data/mysql -R

2、mysqlプロファイルを修正し、プロファイル/etc/my.cnf、修正の具体的な内容は以下の通りです.
[mysqld]
datadir=/data/mysql/database
socket=/data/mysql/mysql.sock
user=mysql
#    utf8
character_set_server=utf8

#       ,          0.0.0.0
bind-address=127.0.0.1

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

pid-file=/data/mysql/run/mysqld.pid
log-error=/data/mysql/log/mysqld.log

[client]
#    utf8
default-character-set=utf8

[mysql]
#    utf8
default-character-set=utf8

3、次のコマンドを入力して、データベースを初期化します.
mysql_install_db --user=mysql --basedir=/usr  --datadir=/data/mysql/database

mysqld_の使用safeコマンドmysqlを起動するには:
[root@localhost mysql]# mysqld_safe &
[1] 4444
[root@localhost mysql]# 170812 06:39:37 mysqld_safe Logging to '/data/mysql/log/mysqld.log'.
170812 06:39:37 mysqld_safe Starting mysqld daemon with databases from /data/mysql/database

OK!
/etc/initを使用します.d/mysqld startコマンド起動:
[root@localhost mysql]# /etc/init.d/mysqld start
MySQL Daemon failed to start.
     mysqld:                                          [  ]

起動に失敗しました.これで電源を入れてから起動できません.
解決策:
SELinuxを閉じる:一時的に閉じる:
setenforce 0

mysqlを起動するには:
[root@localhost mysql]# /etc/init.d/mysqld start
     mysqld:                                          [  ]
[root@localhost mysql]# 

SELinuxを永続的に閉じる:プロファイル/etc/selinux/configファイルのSELINUX=disabledを変更します.以下のようにします.
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Linuxを再起動すればいい!
OK、できました!