windows安装mysql8.0
1、下载
下载地址 https://dev.mysql.com/downloads/mysql/
mysql-8.0.22-winx64.zip
2、安装
1、对压缩包进行解压
2、在安装目录创建配置文件
新建 my.ini 配置文件内容
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
[mysqld]
# 设置3306端口
port=3306
# mysql根目录
basedir=F:\MySQL\mysql-8.0.22-winx64\
# mysql数据库的数据存放目录
datadir=F:\MySQL\mysql-8.0.22-winx64\data
# 默认存储引擎
default-storage-engine=INNODB
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
注意:datadir设置的目录必须为空或者不存在
3、初始化数据目录
以管理员权限打开命令提示符
f: #切换到F盘
cd F:\MySQL\mysql-8.0.22-winx64\bin #进入到mysql的安装目录下的bin目录
mysqld --initialize --console #初始化数据目录,并生成root账号的密码
执行成功会可看到生成了root密码,复制保存起来
同时,在datadir所配置的位置生成了文件夹,文件夹中包含了初始化的数据文件
4、命令行启动和关闭mysql
F:\MySQL\mysql-8.0.22-winx64\bin>mysqld --console
5、连接mysql
F:\MySQL\mysql-8.0.22-winx64\bin>mysql -u root -p
Enter password: ************ #输入初始化数据目录时,控制台打印的root密码
6、修改root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (1.77 sec)
7、关闭mysql
直接ctrl+c或者通过命令行关闭
F:\MySQL\mysql-8.0.22-winx64\bin>mysqladmin -u root -p shutdown
Enter password: *****
8、将mysql作为一个服务安装
到上一步其实已经完成了mysql的安装,已经可以通过命令行进行启动,和停止和连接,但为了方面,在windows启动时就启动mysql,故可以安装mysql服务。
F:\MySQL\mysql-8.0.22-winx64\bin>mysqld --install #安装mysql服务
Service successfully installed.
F:\MySQL\mysql-8.0.22-winx64\bin>net start mysql #启动服务
MySQL 服务正在启动 ...
MySQL 服务已经启动成功。
F:\MySQL\mysql-8.0.22-winx64\bin>net stop mysql #停止服务
MySQL 服务正在停止.
MySQL 服务已成功停止。
F:\MySQL\mysql-8.0.22-winx64\bin>mysqld --remove #移除mysql服务,移除前需先停止mysql服务
Service successfully removed.
问题描述
数据库服务失效,密码输入正确但也无法登陆,准备重置数据库密码,在进行步骤
mysqld --initialize --console
初始化数据库密码,输入密码后仍然无法进入数据库并报错
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
问题解决
1.关闭数据库服务:
net stop mysql
2.管理员权限打开cmd(注意一定要是管理员权限)
在终端中进入到你的MySQL安装目录的bin文件目录下
MySQL 8.x无权限登陆:
mysqld --console --skip-grant-tables --shared-memory
MySQL 5.x无权限登陆:
mysqld --skip-grant-tables
3.新建一个终端窗口(管理员运行)
(-p的密码空白,进行免密登录)
mysql -u root -p
登陆成功后执行:
alter user 'root'@'localhost' identified by '新的密码';
3.1这里可能会出现权限不够的问题:
ERROR 1290 (HY000): The MySQL server is running with the
–skip-grant-tables option so it cannot execute this statement
刷新权限解决:
flush privileges;
刷新完成后继续执行修改新的密码指令
alter user 'root'@'localhost' identified by '新的密码';
4.关闭所有的终端窗口重新MySQL服务:
net start mysql
5.登陆MySQL
mysql -uroot -p 刚设置的密码