使用linux下的軟連接方法,具體操作如下:(以遷移到/date/mysql/目錄為例)
創(chuàng)新互聯公司是一家專注于網站建設、網站設計與策劃設計,大荔網站建設哪家好?創(chuàng)新互聯公司做網站,專注于網站建設十多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:大荔等地區(qū)。大荔做網站價格咨詢:18982081108
其實和方法一基本相同,方法一是把數據目錄遷移后建立一個軟鏈接到原始路徑,方法二則徹底拋棄原目錄,修改配置文件指向新目錄。
先按照方法一把數據目錄遷移到新的位置,然后需要修改以下配置文件:
參考 :
想知道你的mysql裝在哪里嗎?CentOS7一般是裝在/var/lib/mysql中的
在完成遷移之前,先用下面的指令來停止mysqld服務
service mysqld stop,或者直接點sudo systemctl stop mysqld
然后用df-h指令看服務器上剩余空間是多少,假設我們新掛了一塊500G的硬盤到/data上
那么請把mysql整個文件夾拷貝到/data中,像下面這樣:
sudo cp -rf /var/lib/mysql /data/mysql,拷完以后原來的mysql文件夾就可以刪除了
然后再修改/etc/my.cnf,這個也是需要su的:
sudo vi /etc/my.cnf
里面有一個字段叫[mysqld],將datadir和socket修改成這樣:
datadir=/data/mysql
socket=/data/mysql/mysql.sock
接下來,有的人說要修改/etc/init.d/mysqld,但我的服務器不需要,直接通過
service mysqld start就可以啟動SQL服務了,遠程也可以連接上,但是:
當你使用終端mysql -u root -p的時候,就會報下面這個錯:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
這個時候,你有兩種解決辦法,一種是造一個軟連接
ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock,原因是你已經刪掉之前的mysql目錄了
另外一種辦法,是在/etc/my.cnf下面新建一個新字段:
[mysql]
socket=/data/mysql/mysql.sock
第一種方法不需要重啟mysql server,第二種方法需要重啟mysql server,
然后,你就可以成功地從終端里進入mysql了
敲黑板,不要在[mysql]下面自做主張地寫上datadir=/data/mysql,這樣會導致本地命令行登錄時報錯:Unknown Variable: datadir=/data/mysql
caching_sha2_password認證插件提供更多的密碼加密方式,并且在加密方面具有更好的表現,目前MySQL?8.0選用caching_sha2_password作為默認的認證插件,MySQL?5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL?8.0的加密認證方式,最終導致連接問題。
MySQL存儲引擎現在負責提供自己的分區(qū)處理程序,而MySQL服務器不再提供通用分區(qū)支持,InnoDB和NDB是唯一提供MySQL?8.0支持的本地分區(qū)處理程序的存儲引擎。?如果分區(qū)表用的是別的存儲引擎,存儲引擎必須進行修改。要么將其轉換為InnoDB或NDB,要么刪除其分區(qū)。通過MySQLdump從5.7獲取的備份文件,在導入到8.0環(huán)境前,需要確保創(chuàng)建分區(qū)表語句中指定的存儲引擎必須支持分區(qū),否則會報錯。
MySQL?8.0的默認字符集utf8mb4,可能會導致之前數據的字符集跟新建對象的字符集不一致,為了避免新舊對象字符集不一致的情況,可以在配置文件將字符集和校驗規(guī)則設置為舊版本的字符集和校驗規(guī)則。
MySQL?8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動服務器會引入與標識符的排序和比較方式不一致的問題。
lower_case_table_names?
要避免MySQL?8.0上的啟動失敗,MySQL配置文件中的sql_mode系統(tǒng)變量不能包含NO_AUTO_CREATE_USER。
從MySQL?5.7.24和MySQL?8.0.13開始,MySQLdump從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLdump創(chuàng)建的轉儲文件,以刪除NO_AUTO_CREATE_USER。
在MySQL?8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的復制場景中,如果語句使用到廢棄的SQL Mode會導致復制異常。
在執(zhí)行到MySQL?8.0.3或更高版本的in-place升級時,BACKUP_ADMIN權限自動授予具有RELOAD權限的用戶。
本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、數據庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。
原目錄:/var/lib/mysql
新目錄:/data/mysql
1.將/smp/mysql/mysql.sock文件復制到/data/db/mysql.sock,并停止運行mysql(注意,需將
mysql.sock文件復制后,才能停止mysql)
/smp/mysql/bin/mysqladmin -uroot -p shutdown
2.data目錄遷移
cp -a /var/lib/mysql/* /data/mysql
3.修改/etc/my.cnf
socket=/data/db/mysql.sock(注意將原來的socket文件注釋掉,方便回滾)
datadir=/data/db/data
4.建立軟鏈接
ln -s /data/db/mysql.sock /var/lib/mysql/mysql.sock
使用這種方法前,我們需要先下載一個MySQL客戶端工具SqlYog。點擊這里下載并安裝\x0d\x0a\x0d\x0a下面我們開始復制數據庫:\x0d\x0a1、打開SqlYog community Edition,分別在不同的選項卡中打開源數據庫服務器與目標數據庫服務器,這一點很重。\x0d\x0a\x0d\x0a在源數據庫服務器選項卡中你將看到所有數據庫列表。\x0d\x0a2、在需要復制遷移的數據庫上右擊,在彈出菜單中選擇“Copy Database to Different Host/Database”\x0d\x0a3、在彈出對話框中,我們能看到源數據庫服務器及目標服務器,在左邊,通過勾選復選框來選擇需要復制遷移的對象,如表、函數、觸發(fā)器等,也可以選擇所有對象。\x0d\x0a4、在右邊選擇需要遷移的目標服務器或數據庫\x0d\x0a5、根據你的需要選擇復制類型:“Structure and Data”或“Structure only”,即“結構和數據”或“僅結構”。\x0d\x0a6、選擇結束后點擊“Copy”按鈕開始復制,知道數據遷移結束。
文章標題:怎么用mysql遷移 mysql數據庫怎么遷移
文章位置:http://chinadenli.net/article16/dodddgg.html
成都網站建設公司_創(chuàng)新互聯,為您提供營銷型網站建設、網站內鏈、搜索引擎優(yōu)化、網站建設、微信小程序、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯