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.

  • 相关阅读:
    Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十五)阶段总结
    [Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~
    OpenCV学习记录之摄像头调用
    很不错的python 机器学习博客
    华清远见Linux设备驱动(每章小结)
    Linux 查看服务器开放的端口号
    MySQL简单优化
    数据探索之数据质量分析
    两张图简说代理服务器和反向代理服务器
    集合类中嵌套定义和引用的举例
  • 原文地址:https://www.cnblogs.com/coffee_cn/p/9939148.html
Copyright © 2011-2022 走看看