• PHP 5.6连接MySQL 8.0版本遇到的坑


    一、数据库失败Warning: mysqli_connect(): The server requested authentication method unknown to t...

    1 <?php
    2 
    3 //查询数据的查询语句
    4 //1.建立与数据库服务器之间的连接
    5 $connection = @mysqli_connect('127.0.0.1','root','123456','demo2');
    6 
    7 
    8 var_dump($connection);

    查询资料之后发现:

    查了一下发现是mysql8密码机制换成了cha2导致的,解决办法hin简单,来一个SQL命令

    1 mysql> ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';                                    

    二、不要在MySQL中使用utf8,改用utf8mb4

      

    1.为什么需要使用utf8mb4???

    在mysql、MariaDB中:

      • MySQL的“utf8mb4”是真正的“UTF-8”。长度是4个字节。

      • MySQL的“utf8”是mysql自己的一种“专属的编码”,它的最大字符长度为 3 字节。只是“UTF-8”标准的一个子集。

        所以Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和一些不常用的汉字,存储就会报错。

    2、如何修改:

     

    修改MySQL配置文件,修改mysql的客户端默认连接字符集,服务端以及数据库的默认字符集

    只需要在MySQL配置文件中[mysqld]下加这两行

    1 character-set-server = utf8mb4
    2  
    3 collation-server = utf8mb4_unicode_ci

    3、最后是重启mysql

  • 相关阅读:
    Python核心技术与实战——十四|Python中装饰器的使用
    Python核心技术与实战——十三|Python中参数传递机制
    GUI学习之三十四——QSS样式表
    数据分析思维(一):数据分析的三种核心思维
    python设计模式
    Docker架构
    云技术
    5G[generation]的知识收集
    计算机网络知识汇总---20191207
    odoo里面的read_group写法
  • 原文地址:https://www.cnblogs.com/my12-28/p/11844301.html
Copyright © 2020-2023  润新知