zoukankan      html  css  js  c++  java
  • Change the default MySQL data directory with SELinux enabled

    转载:https://rmohan.com/?p=4605

    Change the default MySQL data directory with SELinux enabled

    This is a short article that explains how you change the default MySQL data directory and adjust SELinux to account for the changes. The article assumes that you’re running either RHEL, CentOS, Scientific Linux or Fedora with SELinux enabled. This works with the most recent EL (6.2) version.

    We’ll be doing this in the following order.

    • Stopping the MySQL server
    • Create a new data directory and move the content from the old data directory
    • Correct the MySQL configuration file
    • Adjust SELinux parameters to accept our new change
    • Starting the MySQL server

    Stopping the MySQL server

    # service mysqld stop

    Create a new data diretory and move the content from the old one

    Creating a new data directory

    # mkdir /srv/mysql/
    # chown mysql:mysql /srv/mysql

    Moving the original data files

     # mv /var/lib/mysql/* /srv/mysql/

    Correct the MySQL configuration file

    Edit the my.cnf file for your distribution. In my example it’s located in the /etc/mysql/ directory. RHEL/CentOS/Scientific Linux put the my.cnf file directly in /etc by default.

    # nano /etc/mysql/my.cnf

    Change

    datadir=/var/lib/mysql

    to

    datadir=/srv/mysql

    and

    socket=/var/lib/mysql/mysql.sock

    to

    socket=/srv/mysql/mysql.sock

    and save the file.

    Adjust SELinux parameters to accept our new change

    Should the following command output “Permissive” or “Disabled” then you may skip the details for SELinux.

    # getenforce

    Run the semanage command to add a context mapping for /srv/mysql.

    # semanage fcontext -a -t mysqld_db_t "/srv/mysql(/.*)?"

    Now use the restorecon command to apply this context mapping to the running system.

    # restorecon -Rv /srv/mysql

    Starting the MySQL server

    # service mysqld start

    Verifying access and connectivity

    $ mysql -u root -p
    mysql> show databases;

    If this is working, you’re up and running. Should you get a message that says

    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

    then add the following to your /etc/my.cnf

    [client]
    socket = /srv/mysql/mysql.sock
    

    Optionally you can just use

    $ mysql -u root -p --protocol tcp

    to avoid connecting via the socket.

  • 相关阅读:
    2018/12/21 HDU-2077 汉诺塔IV(递归)
    2018-12-08 acm日常 HDU
    2018/12/12 acm日常 第二周 第六题
    git 添加远程分支,并可以code review.
    zookeeper数据迁移方法
    gem install nokogiri -v '1.6.6.2' 出错
    gem install json -v '1.8.2' error
    gem install bundle 安装失败
    全能型开源远程终端:MobaXterm
    如何写好 Git Commit 信息
  • 原文地址:https://www.cnblogs.com/coffee_cn/p/9939148.html
Copyright © 2011-2022 走看看