windows操作系統(tǒng)下MySQL5.7、8.0的data目錄變更方法以及一些相關(guān)問(wèn)題(MYSQL8的my.ini位置在哪里)
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
現(xiàn)在我們的盤(pán)都是SSD硬盤(pán),讀寫(xiě)速度都快,我們也懶得分區(qū),有些時(shí)候我們裝軟件也喜歡裝在C盤(pán),運(yùn)行快,不過(guò)有些時(shí)候的數(shù)據(jù)還是比較重要的,不光是快的問(wèn)題,也要安裝,比如我們安裝的mysql,會(huì)安裝在C盤(pán),數(shù)據(jù)庫(kù)存儲(chǔ)目錄的Data就要放在其他盤(pán)符比較好,下面就來(lái)說(shuō)說(shuō)如何的更換Mysql的目錄;
windows環(huán)境安裝MySQL8.0,默認(rèn)安裝在C盤(pán)的;
basedir是:C:\Program Files\MySQL\MySQL Server 8.0\bin
datadir 是:C:\ProgramData\MySQL\MySQL Server 8.0\data? ?#這是一個(gè)隱藏文件夾
現(xiàn)在想把datadir遷移到E盤(pán),做法是:
1、關(guān)閉數(shù)據(jù)庫(kù)服務(wù)
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqladmin -uroot -piris shutdown
2、將整個(gè)data目錄剪切到E盤(pán)相應(yīng)文件夾(我在E盤(pán)下新建了一個(gè)Mysql文件夾,E:\mysql)下:
將原data文件夾整個(gè)剪切到mysql下。
新的datadir是:E:\mysql\Data。
并在mysql下新建 “tmp_data”和“slave_data”兩個(gè)文件夾,為參數(shù)tmpdir和slave_load_tmpdir的值。
tips:注意新的Mysql和data文件夾的權(quán)限處理。
3、修改配置文件my.ini:
修改datadir的路徑后,修改my.ini配置文件。
my.ini的配置文件應(yīng)該在“C:\Program Files\MySQL\MySQL Server X.Y\?”? 目錄下。? ?#X.Y代表MySQL的版本號(hào)
我的配置文件是:C:\Program Files\MySQL\MySQL Server 8.0\my.ini
補(bǔ)充:
1.有關(guān)于datadir路徑更換的配置內(nèi)容主要如下
basedir=C:/Program Files/MySQL/MySQL Server 8.0/bin
datadir=E:/mysql/Data
tmpdir=E:/mysql/tmp_data
slave_load_tmpdir=E:/mysql/slave_data
lc-messages-dir=C:/Program Files/MySQL/MySQL Server 8.0/share? ?#錯(cuò)誤消息文件存在的目錄
lc-messages="en_US"? ? ? ? ?#錯(cuò)誤消息的語(yǔ)言環(huán)境。默認(rèn)是 en_US。可將參數(shù)轉(zhuǎn)換為其他語(yǔ)言
log_timestamps=SYSTEM? ? ? ?#錯(cuò)誤日志顯示的時(shí)間
secure-file-priv=E:/mysql/Uploads
general-log=0? ? ? ?#關(guān)閉普通日志
general_log_file=e:/mysql/data/iris_bin.log? ? ? ?#二進(jìn)制文件
slow_query_log_file=e:/mysql/data/iris-slow.log? ?#慢日志文件
slow-query-log=1? ?#慢查詢(xún)時(shí)間閾值
long_query_time=1
exec_time=20 #SQL執(zhí)行超過(guò)20秒自動(dòng)終止
# Binary Logging.
log-bin=e:/mysql/data/iris-bin
log-error=e:/mysql/data/iris-err.err
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
default_authentication_plugin=mysql_native_password? #修改用戶(hù)的身份驗(yàn)證插件。原默認(rèn)用戶(hù)身份驗(yàn)證插件是caching_sha2_password,安全性和性能都較好,但是不支持8.0一下版本的客戶(hù)端&連接器
2、指定了log_timestamps=system的影響:
log_timestamps,錯(cuò)誤日志顯示時(shí)間,指定為system,即我的是"+8:00"(因?yàn)閣indows環(huán)境的system_time_zone就是我計(jì)算機(jī)的時(shí)間,北京時(shí)間)。
配置前后錯(cuò)誤日志內(nèi)容如下:
配置前:
2018-12-13T02:44:24.378145Z 0
2018-12-13T02:44:20.021582Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.13) starting as process 143496
2018-12-13T02:44:20.021686Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\bin\share\errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2018-12-13T02:44:24.378145Z 0 [ERROR] [MY-010119] [Server] Aborting
配置后:
2018-12-13T11:29:00.337768+08:00 0
2018-12-13T11:29:00.337768+08:00 0 [ERROR] [MY-010361] [Server] Fatal error: Illegal or unknown default time zone 'UCT'
2018-12-13T11:29:00.342668+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2018-12-13T11:29:32.462444+08:00 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
4、修改完配置文件后,直接啟動(dòng)數(shù)據(jù)庫(kù)即可
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld
tips:
針對(duì)data文件夾整個(gè)的遷移,如果不修改my.ini配置文件也是可以的。
每次啟動(dòng)的時(shí)候帶上--datadir=data_dir_comm就行,即:
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --datadir=e:\mysql\data
而且,我的my.ini位子并沒(méi)有挪動(dòng),如果my.ini文件也遷移 了、位子也變了,那么啟動(dòng)的時(shí)候一定要帶上--defaults-file參數(shù)。
-----------------------------------------------------------------------------------------------------
其他:關(guān)于“iris_err.err錯(cuò)誤日志”顯示時(shí)間例子里兩段日志內(nèi)容補(bǔ)充說(shuō)明:(都是粗心導(dǎo)致的報(bào)錯(cuò)(?﹏?))
問(wèn)題1:
Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\bin\share\errmsg.sys'-->找不到錯(cuò)誤消息的文件,路徑錯(cuò)誤
解決:
改為:Can't find error-message file 'C:\Program Files\MySQL\MySQL Server 8.0\share\'
share下面都是各種語(yǔ)言系統(tǒng)的報(bào)錯(cuò)文件,指定到share。
配置文件里面 lc-messages-dir和lc-messages,一般是配套使用的,一個(gè)記錄路徑,一個(gè)在選擇路徑下眾多語(yǔ)言里選一個(gè)。
當(dāng)然,指定了lc-messages-dir,不寫(xiě)lc-messages也是可以的。lc-messages默認(rèn)是“en_US”。
問(wèn)題2:
Fatal error: Illegal or unknown default time zone 'UCT''-->指定的默認(rèn)時(shí)區(qū)值是不合法的(也就是不存在這樣的值,)
解決:
配置文件my.ini中指定的系統(tǒng)默認(rèn)時(shí)區(qū)值有誤,正確寫(xiě)法是UTC。但我的配置文件里改成“+0:00”、“+8:00”的值等模式。使用UTC這種時(shí)區(qū)名字需要在time_zone_name表里有對(duì)應(yīng)關(guān)系才行,因?yàn)槲业腗ySQL的time_zone_name表是空的。
------------------------------------------------------
- 在C:\ProgramData\MySQL\MySQL Server 5.7文件夾
- my.ini是默認(rèn)的配置文件。在這里我們只更改數(shù)據(jù)存儲(chǔ)路徑。不更改配置文件
1 # Path to the database root 2 datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
將96行后面的值修改為需要的路徑即可
自定義的文件夾需要在安全屬性里面添加network service的訪問(wèn)權(quán)限,不然會(huì)觸發(fā)10061(2003)的錯(cuò)誤。
PS:mysql在Windows下使用network service權(quán)限運(yùn)行
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!