有点坑啊,当初装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-winx64data 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-winx64my.ini"
MySql75是服务的名字,这里可以自己随便取,我这里写的是代表MySQL5.7版本
E:mysql-5.7.24-winx64my.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
最后再重新启动一下服务即可