1.安装准备
先去官网下载点击的MySQL的下载https://dev.mysql.com/downloads/mysql
国内打开网站可能不好打开下载页,可以直接通过迅雷下载链接下载
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-winx64.zip
官网上也有msi直接的安装,但附带很多没有用的功能。
2.首先先解压mysql文件
这里的data文件是没有的,是安装时生成的
3.创建ini
首先在解压的路径下查看是否含有my.ini的文件,如果没有则新建一个,内容如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Java\mysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Java\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
没有创建也影响不大,很多项都是默认的
4.cmd操作
cmd都需要最高权限
一定要通过最高权限打开,没有打开最高权限会发现无法安装
(1)初始化mysql服务
通过cd 指令进入 mysql文件夹/bin 文件夹
此时才能使用mysql的指令
输入 mysqld --initialize --console
[MY-010454] [服务器]为root @ localhost生成临时密码:9P0gYk-?0,kT其中root @ localhost:后面的9P0gYk-?0,kT就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。复制密码先保存起来!!!
完成后就会发现data文件夹中添加了mysql的服务文件
没有微软的组件会提示
假如电脑没有安装组件可能会报类似错误。需要先安装组件
链接:https://pan.baidu.com/s/1HkC1Rt6qC7WtTZPLf9–pQ
提取码:6epc
(2)安装MySQL服务
mysqld --install [服务名](服务名可以不加默认为mysql,关系到后面启动的服务时的名字)
没有使用最高权限无法安装mysql服务啊,不会显示安装成功
服务安装成功之后
通过命令net start mysql启动MySQL的服务
通过命令net stop mysql关闭MySQL的服务
没有使用最高权限无法开启/关闭mysql服务
(3)mysql8修改密码
假如刚密码记得直接通过指令
mysql -u root -p
再输入密码 回车连接数据库再输入修改密码指令
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;采用mysql的指令
set password for root@localhost = password(‘新密码’);
忘记登录密码
- 先net stop mysql关闭服务
- 运行mysqld --console --skip-grant-tables --shared-memory
- 另外开一个cmd,使用mysql直接通过 mysql -u root 无需密码可以直接登录
- 通过上面方法进行修改
- net start mysql启动服务
(4)mysql9修改密码
MySQL版本5.7.6版本(开始后)的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY ‘l!vWT#mL93’;
-
MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTER USER语句来修改这个值。
输入以下命令,将账号密码强制到期:
mysql> ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE;
此时,用户可以登录到MYSQL服务器,但是在用户为设置新密码之前,不能运行任何命令,就会得到上图的报错,修改密码即可正常运行账户权限内的所有命令。由于此版本密码过期天数无法通过命令来实现,所以DBA可以通过cron定时器任务来设置MySQL用户的密码过期时间。 -
MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略。可以在MySQL的my.cnf配置文件中设置一个默认值。
(a)这会使得所有MySQL用户的密码过期时间都为120天,MySQL会从启动时开始计算时间。
my.cnf配置如下:
[mysqld]
default_password_lifetime=120
(b)如果要设置密码永不过期,my.cnf配置如下:
my.cnf配置如下:
[mysqld]
default_password_lifetime=0 -
如果要为每个具体的用户账户设置单独的特定值,可以使用以下命令完成(注意:此命令会覆盖全局策略),单位是“天”,命令如下:
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE INTERVAL 250 DAY;
4.如果让用户恢复默认策略,命令如下:
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE DEFAULT;
5.个别使用者为了后期麻烦,会将密码过期功能禁用,命令如下:
ALTER USER ‘testuser’@‘localhost’ PASSWORD EXPIRE NEVER;