mysql不同的安裝方式會導致是否生成my.ini文件,一般情況下使用ZIP安裝時,安裝好之后默認是沒有my.ini配置文件。
當我們想修改數據庫的配置信息,若沒有my.ini文件會很麻煩。
當前情況如下:
數據庫安裝在E:\Program Files\MySQL\MySQL Server 5.7,該文件夾下沒有my.ini,但是有my-default.ini。
根據網上的方式,把my-default.ini移除,復制一個my.ini文件放在當前安裝目錄下,my.ini內容如下(根據自己的實際情況進行配置):
# #此數據庫沒有my.ini文件,當前文件為后來增加的 # # [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_bin init_connect='SET NAMES utf8mb4' # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. #該參數指定了安裝 MySQL 的安裝路徑,填寫全路徑可以解決相對路徑所造成的問題。 basedir = E:/Program Files/MySQL/MySQL Server 5.7 #該參數指定了 MySQL 的數據庫文件放在什么路徑下。數據庫文件即我們常說的 MySQL data 文件。 datadir = E:/Program Files/MySQL/MySQL Server 5.7/Data port = 3306 # server_id = ..... # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. join_buffer_size = 128M sort_buffer_size = 16M read_rnd_buffer_size = 16M #定義應該支持的sql語法,對數據的校驗等等 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES max_allowed_packet=300M
注意問題:
根據自己的情況修改basedir和datadir;
特別是datadir,這台服務器有三個data文件夾,分別為
C:/ProgramData/MySQL/MySQL Server 5.7/Data
E:/ProgramData/MySQL/MySQL Server 5.7/Data
E:/Program Files/MySQL/MySQL Server 5.7/Data
也不知道為什么會這么亂,嘗試着來吧,
datadir設置第一個,重啟服務成功,但是其他配置沒生效;
第二個,重啟服務成功,配置生效,但是竟然丟失部分表數據,why?
第三個,重啟服務成功,配置生效,數據正常。
說明datadir的值應該是數據庫安裝目錄中data文件夾的路徑,
另外兩個應該是某位好心的同事重裝或者刪除數據庫沒整干凈
發現一個挺不錯的處理方式,但是我的服務器上運行的系統比較多,十幾個庫,算了算了,能跑就行。。。。