重装
重装MySql首先要将已安装MySql删除,然后重新安装。
若要直接使用已有MySql,则删除 MySql/data/ 文件夹的所有内容,然后跳过下面的删除步骤,从安装的第3步开始。
删除
-
以管理员身份打开cmd,输入
net stop mysql
停止服务。确认服务已停止后,执行下一步。 -
打开运行界面,输入
regedit
打开注册表,删除:- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
关于ControlSet00x,有的只有1个,有的有多个。无论是哪一种,都要删除其下相同目录中的MySQL文件夹。
-
打开cmd,运行命令
sc delete mysql
来删除mysql服务。
这样MySql就删除了。此时可将MySql在磁盘上的文件夹手动删除。
安装
若直接使用已有MySql,则从第3步开始。
-
打开官网下载最新版:
https://dev.mysql.com/downloads/mysql/
这里下载ZIP版本,当前最新版本为8.0.21。下载后解压,放在
D:\Program Files\
文件夹下。 -
在mysql根目录下创建配置文件my.ini:
[client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=D:\Program Files\mysql # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 # datadir=D:\\sqldata # 允许最大连接数 max_connections=1000 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4
MySql从5.7开始,默认开启严格模式,这会导致
group by
语句不标准用法失效。可将group by
语句按严格模式重写,或者在 [mysqld] 节点(重要)下增加设置改为不使用严格模式:[mysqld] ... # 不使用严格模式 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION ...
-
以管理员身份打开cmd,cd到mysql的根目录下,执行命令来初始化数据库:
mysqld --initialize --console
等待执行完成,会输出root用户的默认初始密码:
... 2020-07-29T07:13:26.069601Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pSh:v%B!O7>c ...
pSh:v%B!O7>c
就是初始密码,建议复制并保存,后面要用到。 -
输入命令安装服务:
mysqld install
-
输入命令启动:
net start mysql
这样,MySql就安装好了。可通过命令修改root用户的密码,或者直接用Navicat连接本地的MySql,输入root和前面保存的密码,第一次连接会提示修改密码。
第一次连接使用命令更改密码
使用命令第一次连接MySql时,也会提示更改密码,否则无法进行任何操作。
输入命令:
mysql -u root -p
会提示输入密码,此时输入前面打印的初始密码。
然后输入命令来修改密码:
alter user 'root'@'localhost' identified by '123456';
这样,就将*‘root’@'localhost’的密码更改为123456*了。不需要调用flush privileges;
来刷新即可生效。
开启远程访问
首先要登录mysql:
mysql -u root -p
然后依次输入:
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
查看结果:
use mysql;
select host,user from user where user='root';
重置
以管理员身份打开cmd:
- 输入
net stop mysql
来停止服务。 - 删除 MySql/data/ 文件夹的所有内容。
- 输入
mysqld --initialize --console
,等待初始化完成,记下密码。 - 输入
net start mysql
来启动服务。