- 找到mysql目录下的data文件夹,备份到其他位置。
- 删除mysql目录下的data文件夹。
- 以管理员身份打开cmd,进入到mysql的bin目录下。
- 输入mysqld --initialize-insecure --user=mysql。
我在这里出现了报错:
Table 'mysql.plugin' doesn't exist
Can't open the mysql.plugin table
找不到mysql.plugin表,一番百度之后。
将备份的data\mysql下的内容复制到现在的\data\mysql。
再次运行mysqld --initialize-insecure --user=mysql。
报错改变了:--initialize specified but the data directory has files in it. Aborting.
这里是提示data文件夹下存在文件。
将data文件夹下内容删除再次运行mysqld --initialize-insecure --user=mysql。
运行成功
2019-09-18T00:45:59.373912Z 0 [System] [MY-013169] [Server] C:\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server in progress as process 5536
2019-09-18T00:46:02.460163Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,YvTEeu,q6z4
2019-09-18T00:46:03.696288Z 0 [System] [MY-013170] [Server] C:\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializing of server has completed
遇到的另一个错误:Table 'mysql.user' doesn't exist
是mysqld --initialize-insecure --user=mysql没有运行成功导致的。
期间尝试过重新注册服务,但是没有作用。
相关命令:
删除原来的服务:
mysqld --remove mysql
如果无法删除运行:
sc delete mysql
注册mysql服务:
默认的注册名就为mysql,mysql可以省略。
mysqld --install mysql
mysql的错误日志位置是:C:\mysql-8.0.17-winx64\data\DESKTOP-NDFFRL6.err
my.ini配置
[mysqld]
port = 3306
basedir=C:\mysql-8.0.17-winx64
datadir=C:\mysql-8.0.17-winx64\data
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# mysql默认编码
default-character-set = utf8mb4
[client]
# mysql客户端默认编码
default-character-set = utf8mb4