有點坑啊,當初裝MySQL數據庫的時候沒有整配置文件,結果MySQL報1055錯誤的時候,網上的解決辦法都說如果需要永久生效的話,只能通過改配置文件實現,but,我沒有配置文件,蜜汁尷尬啊
1、已安裝的MySQL,如何重新添加配置文件my.ini
1.1、刪除MySQL服務
以管理員身份打開cmd,輸入命令:
sc delete MySql
"MySql"為服務名稱,你的MysSql服務不一定是這個名稱,可以打開電腦的服務窗口查看。
刪除完成之后,最好去電腦的服務窗口看下,如果找不到MySql服務,說明已經已經刪除成功。
如果還能看到MySql服務,可以手動右擊選擇”停止“,服務停止之后就會自動消失了。
1.2、新建my.ini配置文件
在MySQL程序的根目錄下,新建一個my.ini空白文件,用記事本打開,將以下內容復制進去,保存:
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [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. basedir = E:\mysql-5.7.24-winx64 datadir = E:\mysql-5.7.24-winx64\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
1.3、重新生成data文件
先將原來的data文件刪除(注意備份)
回到cmd,重新生成data文件,運行以下命令:
mysqld --initialize-insecure --user=mysql
完成后會在MySql程序文件夾下重新生成名稱為data的文件夾,可以打開MySQL安裝路徑查看
1.4、重新安裝mysql服務,同時綁定my.ini配置文件
在cmd中輸入以下命令:
mysqld --install "MySql75" --defaults-file="E:\mysql-5.7.24-winx64\my.ini"
MySql75是服務的名字,這里可以自己隨便取,我這里寫的是代表MySQL5.7版本
E:\mysql-5.7.24-winx64\my.ini是my.ini的絕對路徑
如果提示安裝成功,這時打開電腦的”服務“窗口,可以找到新添加的MySql75服務:
1.5、啟動服務
啟動服務的方式有兩種,一種是在服務窗口手動啟動,一種是在cmd中通過命令啟動
1.5.1、命令啟動
在cmd中輸入如下命令:
net start mysql75
1.5.2、服務窗口手動啟動
win +R:輸入services.msc打開服務窗口
1.6、重新設置密碼
刪除了data文件和服務之后,之前的密碼就失效了,所以需要重新設置密碼。
打開navicat重新設置密碼
退出MySQL,在重新以新密碼進入即可
2、解決MySQL1055問題(永久解決)
在navicat中執行以下命令:
SELECT @@sql_mode
將最開始的ONLY_FULL_GROUP_BY去掉,復制后邊的全部代碼,打開剛才寫的my.ini,添加到最后一行
sql _mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
最后再重新啟動一下服務即可