MySQL相关

收集一些window下MySQL相关的资料。


1.可视化工具无法连接 MySQL 8.0 的问题

MySQL 8.0 版本去除了 password 字段,改用 authentication_string 字段;同时还更改了加密方式,之前版本的加密方式是「mysql_native_password」,8.0 之后的加密规则更改为「caching_sha2_password 」,这里需要把用户密码加密规则更改为原来的加密方式即可。

   # 假如
   # 主机名为 localhost
   # 数据库用户名为 root
   # 数据库密码为 123456
   # 则输入以下指令
 
   # 切换到 mysql 数据库
   use mysql;
   
   # 设置用户密码永不过期
   alter user root@localhost identified by '123456' password expire never;
   
   # 用「mysql_native_password」加密方式更新 root 用户密码
   alter user root@localhost identified with mysql_native_password by '123456';
   
   # 刷新
   flush privileges;


2. MySQL utf8 存入中文乱码

从后台读取的数据,数字和英文正常显示,中文都是问号,很容易猜到可能是字符集的问题。
是MySQL 默认字符集的问题。

## 进入 MySQL

mysql -u root -p
## 输入密码

## 查看各种默认配置
show variables like '%char%';

## 会有一个表 大概如下
## 部分utf8 可能会是其他值,然后我们慢慢修改
## set character_set_client=utf8
## 也可以用以上方法设置,但重启 mysql 又会回到原点
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
## 退出数据库

-------------------------------------------------------------

## my.ini
## 编辑这个配置文件
## 在对应的区域添加、新增

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

## 重启mysql服务

你可能感兴趣的:(MySQL相关)