MySQL解压后:
1、以管理员身份运行cmd,切换到MySQL安装目录的bin目录下
2、安装MySQL服务:
mysqld -install mysql3308
其中,mysql3308是可以自己取的名字,在后续安装好后,启动、关闭MySQL等命令中也要使用这个名称,如果不想麻烦,可以直接取名mysql;取名主要是为了不和已经安装了的MySQL产生冲突
3、初始化,执行my.ini文件的配置内容:
mysqld --initialize-insecure --user=mysql
my.ini文件是放在MySQL安装目录下的配置文件:
[mysqld]
#服务端的端口
port=3308
default-time-zone = '+8:00'
#解压根目录
basedir=D:/_Development/mysql/mysql-8.0.28-winx64
#解压根目录/data
datadir=D:/_Development/mysql/mysql-8.0.28-winx64/data
default-storage-engine=INNODB
#SQL模式的参数,通过这个参数可以设置检验SQL语句的严格程度
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
############################################InnoDB参数配置 开始############################################
#索引和数据缓冲区大小,默认128M,一般设置物理内存的60%-70%
innodb_buffer_pool_size = 512M
#缓冲池实例个数,推荐设置4个或8个
innodb_buffer_pool_instances = 8
#关键参数,0代表大约每秒写入到日志并同步到磁盘,数据库故障会丢失1秒左右事务数据。
#1为每执行一条SQL后写入到日志并同步到磁盘,I/O开销大,执行完SQL要等待日志读写,效率低。
#2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高,如果服务器故障,才会丢失事务数据。
#对数据安全性要求不是很高的推荐设置2,性能高,修改后效果明显。
innodb_flush_log_at_trx_commit=2
#默认是共享表空间,共享表空间idbdata文件不断增大,影响一定的I/O性能。
#推荐开启独立表空间模式,每个表的索引和数据都存在自己独立的表空间中,可以实现单表在不同数据库中移动。
innodb_file_per_table = ON
#日志缓冲区大小,默认8M,由于日志最长每秒钟刷新一次,所以一般不用超过16M
innodb_log_buffer_size = 16M
############################################InnoDB参数配置 结束############################################
[mysql]
#默认字符类型
default-character-set=utf8mb4
############################################公共参数配置 开始############################################
#0.同时处理最大连接数,推荐设置最大连接数是上限连接数的80%左右
#max_connections=1200
#1.查询排序时缓冲区大小,默认2m,只对order by和group by起作用,可增大此值为16M
#sort_buffer_size = 16M
#2.查询缓存限制,默认1M,只有1M以下查询结果才会被缓存,以免结果数据较大把缓存池覆盖
#query_cache_limit = 10M
#3.查看缓冲区大小,默认1M,用于缓存SELECT查询结果,下一次有同样SELECT查询将直接从缓存池返回结果,可适当成倍增加此值
#query_cache_size = 160M
#4.打开文件数限制,默认1024,如果show global status like 'open_files'查看的值等于或者大于open_files_limit值时,程序会无法连接数据库或卡死
#open_files_limit = 8192
############################################公共参数配置 结束############################################
4、启动MySQL服务
net start mysql3308
5、设置密码
启动MySQL之后,root用户的密码默认为空,需要设置密码
mysqladmin -u root -p -P3308 password 新密码
Enter password: 旧密码
在给MySQL取名为mysql3308之后,设置密码需要加上"-P3308",这里是指my.ini里设置的port端口号是3308,如果端口号设置的不是3308就改成自己设置的端口
因为旧密码默认为空,输入旧密码直接回车即可
6、关闭MySQL
net stop mysql3308
忘记密码:
1.使用管理员权限打开命令提示符,在命令行中输入: net stop mysql
2.待mysql服务停止后,输入: mysqld --shared-memory --skip-grant-tables ,
此时命令提示符窗口处于锁定状态,我们重新以管理员权限打开新的命令提示符窗口。
3.在新的命令提示符窗口输入: mysql -uroot -p 后回车,提示输入密码时直接按回车进入。
4.输入: use mysql;
5.输入: update user set authentication_string='' where user='root'; ,将
authentication_string置空。
注:在mysql8.0以上版本,
update mysql.user set password='newpassword' where user='root';
和
update mysql.user set password=PASSWORD('newpassword') where User='root';
这两条命令已经不起作用了
6.输入: alter user 'root'@'localhost' identified by 'newpassword';
newpassword是要设的新密码。
7.如果提示设置成功,则输入: flush privileges; 。完成后Ctrl+Z退出mysql,使用新
密码重新登录即可。
注:此步骤切不可省略!!!
8.如果提示不成功,则关闭两个命令提示符,重新打开一个管理员权限的命令提示符窗口,
输入: mysql -uroot -p 后回车,输入密码时直接按回车进入(因为此时密码已被置空)。
9.重复步骤4,步骤6,步骤7。
10.如果使用Navicat等可视化界面连接数据库时连接不成功的情况,如错误信息:2059。
此时需要更改验证方式,使用命令提示符登录数据库,输入:
ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
yourpassword是你想要设置的密码。
11.提示成功后,重复步骤7,再次打开Navicat连接即可。
以上为mysql 8.0版本以上,忘记root密码或使用root密码登录不成功的解决办法!