編碼的世界 / 優質文選 / 歷史

修改MySQL默認數據庫存放路徑


2022年7月16日
-   

Windows系統: 把MySQL裝在了C:Program FilesMySQLMySQL Server 5.0,默認的數據庫文件是放在C:Program FilesMySQLMySQL Server 5.0data下。  但現在在D盤下做項目,因此一個數據庫就放在了D盤,路經是這樣的:D:eclipseworkspacepro1libdb。  找到了my.ini的配置文件中的:  datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"  將其修改成:datadir="D:/eclipse/workspace /pro1/lib/db/"  BUT我重啟的時候,MySQL服務啟動不了了。而且用MySQL-Front連接的時候提示: 主機127.0.0.1找不到。  答: 使用符號鏈接吧,下面是mysql 5.0手冊上的例子。  Suppose that the MySQL data directory is C:mysqldata and you want to have database foo located at D:datafoo. Set up a symlink using this procedure  Make sure that the D:datafoo directory exists by creating it if necessary. If you already have a database directory named foo in the data directory, you should move it to D:data. Otherwise, the symbolic link will be ineffective. To avoid problems, make sure that the server is not running when you move the database directory.  Create a text file C:mysqldatafoo.sym that contains the pathname D:datafoo.  After this, all tables created in the database foo are created in D:datafoo. Note that the symbolic link is not used if a directory with the same name as the database exists in the MySQL data directory.  假設你的mysql安裝在c:mysql,數據目錄就是c:mysqldata,現在你想在D 盤建立一個名為foo的數據庫,路徑為d:datafoo.  首先:保證d:datafoo目錄存在,如果沒有就創建或 者你c:mysqldata下面有,就把它剪切過來,當然在停止mysql的情況下作移動,否則是不起任何作用的。  再次: 在c:mysqldata目錄下建立一個文本文件命名為foo.sym,文件名與數據庫名相同,後綴名為sym,裏面的內容為:D:data foo,就是foo數據庫的絕對路徑。 Linux系統: linux下,MySQL默認的數據文檔存儲目錄為/var/lib/mysql。假如要把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/init.d/mysql   最後,需要修改MySQL啟動腳本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成您現在的實際存放路徑:home/data/mysql。   [root@test1 etc]# vi /etc/init.d/mysql   #datadir=/var/lib/mysql    (注釋此行)   datadir=/home/data/mysql   (加上此行)     如果是CentOS還要改 /usr/bin/mysqld_safe 相關文件位置;     最後 做一個mysql.sock 鏈接: ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock   7、重新啟動MySQL服務   /etc/init.d/mysql start   或用reboot命令重啟Linux   假如工作正常移動就成功了,否則對照前面的7步再檢查一下。還要注意目錄的屬主和權限。     複制內容到剪貼板  代碼: [root@sample ~]# chown -R mysql:mysql /home/data/mysql/  ← 改變數據庫的歸屬為mysql [root@sample ~]# chmod 700 /home/data/mysql/test/  ← 改變數據庫目錄屬性為700 [root@sample ~]# chmod 660 /home/data/mysql/test/*  ← 改變數據庫中數據的屬性為660

熱門文章