CentoS8 Mysql8 数据目录迁移
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Mysql數(shù)據(jù)庫數(shù)據(jù)目錄遷移
1 聲明
本文的數(shù)據(jù)來自網(wǎng)絡(luò),部分代碼也有所參照,這里做了注釋和延伸,旨在技術(shù)交流,如有冒犯之處請聯(lián)系博主及時處理。
2 數(shù)據(jù)目錄遷移簡介
一般我們是通過rpm包的方式安裝mysql,自己源碼編譯的較少。但這種方式安裝數(shù)據(jù)庫時默認的數(shù)據(jù)庫數(shù)據(jù)存儲目錄在/var/lib/mysql或者其它類似的系統(tǒng)級目錄。大多數(shù)情況下我們的系統(tǒng)盤因為各種原因分配的不夠大,這時提前安排數(shù)據(jù)庫的配額或者單獨給數(shù)據(jù)庫分配空間就顯得尤為重要。這里演示的是怎樣將原始的系統(tǒng)級數(shù)據(jù)目錄修改成自定義的目錄。
注:當前實驗環(huán)境 CentOS 8.2、Mysql 8.0.21
1 內(nèi)核版本:
[root@localhost ~]#?
cat /proc/versionLinux version 4.18.0-193.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020
2 redhat版本
[root@localhost ~]#
cat /etc/redhat-releaseCentOS Linux release 8.2.2004 (Core)
3 mysql版本
select @@version3 數(shù)據(jù)目錄遷移步驟
Step 1 首先通過命令查看當前數(shù)據(jù)庫的數(shù)據(jù)目錄
show variables like 'datadir'? -- 當前為/var/lib/mysql/Step 2 停止mysql數(shù)據(jù)庫服務(wù)
service mysqld stopStep 3 創(chuàng)建新的數(shù)據(jù)庫數(shù)據(jù)存放目錄
mkdir –p /data/mysqlStep 4 將原先的數(shù)據(jù)庫數(shù)據(jù)目錄的數(shù)據(jù)遷移到新目錄內(nèi)
cp -R /var/lib/mysql/* /data/mysql/Step 5 將新的數(shù)據(jù)目錄權(quán)限賦予mysql用戶。
chown mysql:mysql -R /data/mysql/Step 6 通過mysql的主配置文件找到其它的配置文件(客戶端、服務(wù)端)
cat /etc/my.cnf其中服務(wù)端配置文件在/etc/my.cnf.d目錄下。
Step 7 修改server里的datadir和socket參數(shù),修改部分詳見如下粗體:
vi /etc/my.cnf.d/mysql-server.cnf[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
Step 8 啟動mysql服務(wù)。
service mysqld startStep 9 再次執(zhí)行查看數(shù)據(jù)目錄參數(shù)的命令查看當前數(shù)據(jù)目錄。
show variables like 'datadir'Step 10 額外驗證(新建個數(shù)據(jù)庫驗證數(shù)據(jù)文件是否存放在/data/mysql內(nèi))
CREATE DATABASE IF NOT EXISTS HouseSrc default charset utf8 COLLATE utf8_general_ci;4 問題
1 啟動mysql服務(wù)啟動報錯,報MY-010119錯,該日志內(nèi)容位于/var/log/mysql/mysqld.log文件內(nèi)。?如下字樣錯誤:
2021-03-29T07:28:38.644603Z 0 [Warning] [MY-010091] [Server] Can't create test file /data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2021-03-29T07:28:38.644638Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /data/mysql/ is case insensitive
2021-03-29T07:28:38.646855Z 0 [ERROR] [MY-010119] [Server] Aborting
解決方法:
徹底禁用SELinux,需要在selinux文件里設(shè)置參數(shù)SELINUX=disabled后重啟linux服務(wù)器后再啟動mysql服務(wù)。
vi /etc/sysconfig/selinux注:查看selinux狀態(tài)的命令
/usr/sbin/sestatus –v
getenforce
2 mysql命令直連時報錯
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解決方法:
mysql命令里加上-S參數(shù),即指定sock
mysql -S /data/mysql/mysql.sock -uroot -proot1234總結(jié)
以上是生活随笔為你收集整理的CentoS8 Mysql8 数据目录迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 模型持久化
- 下一篇: linux cmake编译源码,linu