MySQL 教程 在线

2473MySQL 安装2059错误

Navicat 连接 Mysql8.0.11 出现 2059 错误

在使用 8+ 以上 MySQL 时,navicat premium 连接 mysql 数据库时,会报2059错误;

原因: 8+ 版本使用的密码加密规则为 caching_sha2_password

而 navicate 驱动目前不支持新加密规则,解决问题方法有两种,一种是升级 navicat 驱动,一种是把 mysql 用户登录密码加密规则还原成 mysql_native_password,这里我们将 mysql 规则修改回之前的 mysql_native_password,

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER; # 修改加密规则 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; # 更新一下用户的密码 
FLUSH PRIVILEGES; #刷新权限

2472MySQL 修改root密码4种方法

MySQL 修改 root 密码的 4种方法(以windows为例)

方法 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服务的时候跳过权限表认证。
  • 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 登录。

2471MySQL 安装

在键入任何命令都会报这个错的时候:

You must reset your password using ALTER USER statement before executing this statement.

意思是需要重设密码,重设密码的命令如下:

alter user user() identified by "密码";

例如:

alter user user() identified by "123456";

2470MySQL ANSI 编码

我用 Windows10 安装 mysql 出现的问题。

1.编码错误

mysql Found option without preceding group in config file D:\System\mysql\my.ini at line 1
解决:请将 my.ini 文件格式转为 ANSI 编码。

2.时区错误

The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

需要在配置文件 [mysqld] 中加入:

default-time-zone = '+8:00'

2469MySQL 服务无法启动

Windows 64 位 mysql 8.0.12 版本包解压中没有 data 目录和 my-default.ini 文件以及服务无法启动的解决办法以及修改初始密码的方法。

1、没有 my-default.ini 文件,你可以在根目录下自己创建一个 my.ini 文件,具体内容如下:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\web\mysql-8.0.11
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

2、如果设置 mysql 数据库的数据的存放目录:

datadir=C:\web\sqldata

这样会导致服务无法启动,不要添加这一句,也不要自己新建 data 文件夹,由 mysql 自动生成 data 就好。

以管理员的方式打开 cmd 命令窗口(直接打开 cmd 运行,可能会报错),并且进入到 mysql 安装目录的 bin 目录下。然后输入以下命令:

mysqld install
mysqld --initialize
net start mysql 

最后就会生成 data 目录。