收集一些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服务