遷移資料庫mysql,遷移資料庫文件

本文目錄一覽:

MySQL 數據文件遷移至新硬碟

[mysqld]

# * Basic Settings

user            = mysql

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

port            = 3306

basedir        = /usr

datadir        = /data/c/mysql 修改

#datadir        =/var/lib/mysql

這個原因有二,其中任意的一個原因都會造成你被系統告知這個warning。如果你不是一個專業的linux系統安全工程師,或者你只是個PHP程序員,並沒有對系統安全有深入的研究,你就不會太容易找到它的答案。

第一,selinux,記得當年念書時,字元界面安裝redhat(很古老的操作系統么。。。)的時候,有這麼一個選項,通常大家都聽取前輩的建議,改變默認值以不安裝它。但如果你恰好要操作的這台機器開著selinux,它確實能夠使你的mysql無法在新目標位置進行mysql_install_db的操作,並爆出標題所示的警告。一個簡單的解決辦法是使用命令暫時關閉selinux,以便讓你的操作可以繼續下去 setenforce 0 但最好使用一個永久方法,以便在重啟後繼續不要這貨。 修改/etc/selinux/config文件中設置SELINUX=disabled ,然後重啟或等待下次重啟。

第二,apparmor,這個坑爹貨和selinux一樣的坑爹,它也對mysql所能使用的目錄許可權做了限制 在 /etc/apparmor.d/usr.sbin.mysqld 這個文件中,有這兩行,規定了mysql使用的數據文件路徑許可權

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

你一定看到了,/var/lib/mysql/就是之前mysql安裝的數據文件默認路徑,apparmor控制這裡mysqld可以使用的目錄的許可權 我想把數據文件移動到/data/mysql下,那麼為了使mysqld可以使用/data/mysql這個目錄,照上面那兩條,增加下面這兩條就可以了

/data/mysql/ r, /data/mysql/** rwk,

  /var/lib/mysql/ r,

  /var/lib/mysql/** rwk,

  /datc/c/mysql/ r,

  /data/c/mysql/** rwk,

  /var/lib/mysql-files/ r,

  /var/lib/mysql-files/** rwk,

  /data/c/mysql-files/ r,

  /data/c/mysql-files/** rwk,

  /var/lib/mysql-keyring/ r,

  /var/lib/mysql-keyring/** rwk,

  /data/c/mysql-keyring/ r,

  /data/c/mysql-keyring/** rwk,

apparmor,/etc/inid.d/apparmor restart////////////     /etc/init.d/apparmor restart

如何把sqlserver數據遷移到mysql資料庫及需要注意事項

在項目開發中,有時由於項目開始時候使用的資料庫是SQL Server,後來把存儲的資料庫調整為MySQL,所以需要把SQL Server的數據遷移到MySQL。下面是小編日常整理的一種sqlserver資料庫遷移的方法。

一、SQL Server中常用數據類型與MySQL不同的地方

二、將SQL Server數據遷移到MySQL需要注意的一些問題

1、唯一索引的不同,sql server的唯一索引的欄位只能允許存在一個null值,而mysql,一直oracle中唯一索引對應的欄位都允許存在多個null值。

2、存儲過程的語法存在很大的不同,存儲過程的遷移是最麻煩的,需要仔細修改。

3、程序中部分寫的SQL語句由於語法的不同也要相應的修改。

三、將SQL Server數據遷移到MySQL的常見方法

1、使用 SQLyog 遷移

優點

該遷移方法很簡單,靈活,遷移時,可以進行欄位的修改,比如在sql server中原來是datetime,然後遷移到mysql時你可以配置成timestamp;成功率很高;

缺點

遷移很慢!這是該方法最大的缺點,如果表的數據量達到幾十萬行,甚至幾百萬行,你會發現遷移起來真的很慢。明顯比其他遷移方法慢很多。

2、使用 powerdesigner 和 sql server 的腳本導出功能 來遷移

(1)、該方法首先使用 powerdesigner,對sql

server資料庫,進行逆向工程,得到E-R圖,然後生成MySQL的建表語句。完成資料庫結構的遷移;當然表結構的遷移,不使用

powerdesigner一樣也是可以的。比如我將表結構導出成語句,然後手動進行修改,然後在MySQL中運行,也是一樣的;

(2)、然後使用 sql server的工具 SSMS,將sql server資料庫中的表的數據,導出成insert語句,每個表對應導出一個文件,然後對文件進行一些處理,然後導入到MySQL資料庫中。

3、使用Oracle MySQL Server 官方的 workbeach 工具進行遷移

(1)、在workbench 連接sql server時,用戶需要有 view any database 的許可權。不然workbench無法訪問sql server的表結構的元數據,從而無法進行遷移。

(2)、還有使用 Navicat 來進行遷移的方法,方法和 SQLyog 是類似的。

mysql5.1的資料庫如何遷移至mysql5.7?

安全的辦法是在舊環境導出表數、在新環境建立資料庫後導入表,可以使用SQL或者TXT為中間文件。

如何遷移MySQL資料庫

caching_sha2_password認證插件提供更多的密碼加密方式,並且在加密方面具有更好的表現,目前MySQL 8.0選用caching_sha2_password作為默認的認證插件,MySQL 5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL 8.0的加密認證方式,最終導致連接問題。

MySQL存儲引擎現在負責提供自己的分區處理程序,而MySQL伺服器不再提供通用分區支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分區處理程序的存儲引擎。 如果分區表用的是別的存儲引擎,存儲引擎必須進行修改。要麼將其轉換為InnoDB或NDB,要麼刪除其分區。通過MySQLdump從5.7獲取的備份文件,在導入到8.0環境前,需要確保創建分區表語句中指定的存儲引擎必須支持分區,否則會報錯。

MySQL 8.0的默認字符集utf8mb4,可能會導致之前數據的字符集跟新建對象的字符集不一致,為了避免新舊對象字符集不一致的情況,可以在配置文件將字符集和校驗規則設置為舊版本的字符集和校驗規則。

MySQL 8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動伺服器會引入與標識符的排序和比較方式不一致的問題。

 lower_case_table_names 

要避免MySQL 8.0上的啟動失敗,MySQL配置文件中的sql_mode系統變數不能包含NO_AUTO_CREATE_USER。

從MySQL 5.7.24和MySQL 8.0.13開始,MySQLdump從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLdump創建的轉儲文件,以刪除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會導致複製異常。

在執行到MySQL 8.0.3或更高版本的in-place升級時,BACKUP_ADMIN許可權自動授予具有RELOAD許可權的用戶。

本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、資料庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289583.html

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智慧等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 銀行資金管理系統總結

    銀行資金管理系統是銀行日常業務運營的核心支撐系統,主要負責處理銀行的資金流動、結算、清算等業務。本文將從功能特點、技術架構、安全性以及未來發展趨勢等多個方面對銀行資金管理系統進行詳…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 英語年齡用連字元號(Hyphenation for English Age)

    英語年齡通常使用連字元號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字元使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • 金額選擇性序列化

    本文將從多個方面對金額選擇性序列化進行詳細闡述,包括其定義、使用場景、實現方法等。 一、定義 金額選擇性序列化指根據傳入的金額值,選擇是否進行序列化,以達到減少數據傳輸的目的。在實…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29