安装板安装教程:https://www.cnblogs.com/attentle/p/10820899.html
一、服务无法启动
1、安装路径下新建my.ini文件
# 此文件非注释语句不要使用""
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3307
# 设置mysql的安装目录
basedir=F:\mysql5.7
# 设置mysql数据库的数据的存放目录
datadir=F:\mysql5.7\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2、remove掉无法启动的mysql服务
mysqld --remove mysql 移除
mysqld --install mysql 安装
3、不要手动新建data文件夹,
依次运行以下命令
mysqld --initialize-insecure
这一句不用执行:mysqld --install mysql --defaults-file=D:\java\mysql-5.7.27-winx64\my.ini
4、运行服务
管理员权限下运行cmd
net start mysql
5、data目录下找.err后缀的日志可以查看密码错误信息
6、启动服务,登录mysql
net start mysql
mysql -uroot -p123456
二、Navicat Premium 12连接MySQL报错 Authentication plugin 'caching_sha2_password' cannot be loaded
https://blog.csdn.net/u011182575/article/details/80821418
Navicat 连接MySQL 8.0.11 出现2059错误:
在navicat连接mysql8以后的版本时,会出现2059的错误,这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。本文采用第二种方式。
1、ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式
2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; #更新用户密码
3、FLUSH PRIVILEGES; #刷新权限
三、如何修改密码
https://www.cnblogs.com/yang82/p/7794712.html
第一种方式:
最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下:
1、登录mysql到指定库,如:登录到test库。
2、然后点击上方“用户”按钮。
3、选择要更改的用户名,然后点击上方的“编辑用户”按钮。
4、出现如图界面,输入新密码,并确认新密码,点击“保存”按钮即可。
第二种方式:
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
mysql8命令更改为:mysqld --console --skip-grant-tables --shared-memory
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
方法4详细步骤:
1.打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址
2 打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。
3 输入命令 mysqld --skip-grant-tables 【mysql8命令是:mysqld --console --skip-grant-tables --shared-memory】回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,mysql服务也关闭,确保mysql服务器端已结束运行。
关闭服务:win+r 运行services.msc
杀进程:
>>tasklist |findstr mysqld 这行命令可以用来查看mysqld是否在运行,在运行中则可以查到它的PID
>>taskkill /F /PID xxxx xxxx是从前面一条命令得到的PID值
4 然后重新打开新的CMD 直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。
5 输入show databases; 可以看到所有数据库说明成功登陆。
6 其中mysql库就是保存用户名的地方。输入 use mysql; 选择mysql数据库。
7 show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
8 输入select user,host,password from user; 来查看账户信息。
9 更改root密码,输入update user set password=password('123456') where user='root' and host='localhost';
这里最好带上host,可能同时修改了远程和本地的密码
如果修改失败:
1、如果报1820的错误,则执行命令:ALTER USER USER() IDENTIFIED BY ‘新密码’,提示Query OK,说明密码已修改成功;
2、如果如下图所示报1054的错误,则更改命令语句为:update user set authentication_string=password('root') where user='root';即可,
再次查看账户信息,select user,host,password from user; 可以看到密码已被修改。
11 退出命令行,重启mysql数据库,用新密码尝试登录。
12 测试不带密码登录mysql,发现还是能够登陆上,但显示数据库时只能看到两个数据库了,说明重启之后跳过密码验证已经被取消了。
13 我这地方重启数据库之后之所以不带密码任然能够登录是因为我的数据库里存在设无须口令的账户。 END 注意事项 注意其中需要重启数据库的几个地方