Linux 下mysql修改數據庫存放目錄方法和可能遇到的問題


MySQL版本:5.6.23-enterprise-commercial-advanced ,使用rpm安裝
linux:Red Hat Enterprise Linux Server release 6.3 (Santiago)
一 、如果是linux下用rpm包安裝的mysql,修改方法如下:

MySQL默認的數據文件存儲目錄為/var/lib/mysql。假如要把目錄移到/home/data下需要進行下面幾步:
   1、home目錄下建立data目錄
   cd /home
   mkdir data
   2、把MySQL服務進程停掉:
   mysqladmin -u root -p shutdown
   3、把/var/lib/mysql整個目錄移到/home/data
   mv /var/lib/mysql /home/data/
   這樣就把MySQL的數據文件移動到了/home/data/mysql下
   4、找到my.cnf配置文件
  如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。命令如下:
   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
   5、編輯MySQL的配置文件/etc/my.cnf
  為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。操作如下:
   vi  my.cnf    (用vi工具編輯my.cnf文件,找到下列數據修改之)
   # The MySQL server
    [mysqld]
    port   = 3306
    #socket  = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”注釋此行)
    socket  = /home/data/mysql/mysql.sock   (加上此行)
   6、修改MySQL啟動腳本/etc/rc.d/init.d/mysql
  最后,需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。
   [root@test1 etc]# vi /etc/rc.d/init.d/mysql
   #datadir=/var/lib/mysql    (注釋此行)
   datadir=/home/data/mysql   (加上此行)
   7、重新啟動MySQL服務
   /etc/rc.d/init.d/mysql start
   或用reboot命令重啟Linux

以下是mysql數據目錄修改出現

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)錯誤的解決方案:

本例是將Mysql的數據目錄移動到了/home/data/下,即mysql.sock所在的真實目錄為,/home/data/mysql/mysql.sock

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

mysql有tcp連接和socket連接方式,而上面這種錯誤一般是因為mysql是使用rpm方式安裝的,它會自動尋找 /var/lib/mysql/mysql.sock 這個文件,是一種socket連接方式。

常見解決辦法如下:
1、
創建/修改文件 /etc/my.cnf文件,在[mysqld]上面添加

[client]
#password=your_password
port=3306
socket=/home/data/mysql/mysql.sock
#在這里寫上你的mysql.sock的正確位置。

2、
指定IP地址,使用tcp方式連接mysql,而不使用本地socket方式
#mysql -h127.0.0.1 -uuser -ppassword

3、
為 mysql.sock 加個連接,比如說實際的mysql.sock在 /home/data/mysql/ 下,則
#ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock即可

[root@rusky lib]# ln -s /opt/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
ln: 創建符號鏈接 "/var/lib/mysql/mysql.sock": 沒有那個文件或目錄
由於/var/lib/mysql整個目錄被mv了,所以需要在/var/lib/目錄下創建mysql目錄,再創建符號鏈接就可以了。

*****************************如果是在unbuntu系統下用如下方法***********************

關閉數據庫服務
service mysql stop
建新數據庫目錄
mkdir /media/hda11/db

復制linux下原數據到新目錄下
cp -pR /var/lib/mysql /media/hda11/db/

修改文件/etc/apparmor.d/usr.sbin.mysqld
gedit /etc/apparmor.d/usr.sbin.mysqld

/var/lib/mysql r,
/var/lib/mysql/** rwk,

改成
/media/hda11/db/mysql r,
/media/hda11/db/mysql/** rwk,

修改目錄
gedit /etc/mysql/my.cnf

datadir = /var/lib/mysql換成datadir = /media/hda11/db/mysql

再開服務器
/etc/init.d/apparmor restart

servcie mysql start

====================

FROM:http://blog.163.com/anonymous_ch/blog/static/206824190201391842558553/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM