安装MySQL8的心酸历程

Mysql8数据库安装教程

上周 他是我的朋友 安装mysql8 首先,从官网下载安装包 具体过程我就不赘述了
然后双击运行 成为协议的下一步 选择仅服务器
下一步 单击“确定”并等待安装完成。
显示成功
下一步 保留默认参数 下一步
调整模式 选择 UseLegacyAuthenticationMethod
下一步 设置root密码 输入两次以确认
下一步 默认面 下一步应该是宠物 忘记它吧

mysql8 忽略大小写

哈,MySQL8 是区分大小写的。
下面我就详细的告诉大家我遇到的坑。

上周有客户问我为什么这个项目中“Users”和“Users”无法连接。
我当时很困惑。
查了一下,发现居然是区分大小写的。

MySQL8 默认的数据库名和表名是区分大小写的,这一点与Windows不同。
在Linux上运行MySQL时,配置文件通常位于/etc/mysql/my.cnf或/etc/my.cnf。
如果是 Windows,则可能位于 C:\ProgramData\MySQL\MySQL Server 8 .0\my.ini 中。
如果你想不区分大小写,请在[mysqld]下添加一行“lower_case_table_names=1 ”。

但是有一个陷阱!这个东西是全局变量。
在启动 MySQL 之前必须更改配置文件。
直到服务器重新启动后才会生效。
更改后,服务器正在运行,无法动态更改。
上次尝试修改时,生产环境差点崩溃。
幸好我反应快,先创建了备份。

列名和查询区分大小写甚至更加复杂。
这和字符集(collat​​ion)的编译有很大关系。
与utf8 _general_ci一样,搜索不区分大小写,ci也不区分大小写。
但是,如果使用utf8 _bin或utf8 _general_cs(cs区分大小写),则区分大小写。

因此,如果您检查数据,例如 SELECT FROM users WHERE username='admin',并且如果 username 列使用 utf8 _general_ci,则可以找到所有 'admin'、'ADMIN' 和 'AdMiN'。
如果你使用utf8 _bin,你只能找到完全相同的情况。

在更改这些配置之前,请确保创建足够的备份!我改了一次排序规则,测试环境没有问题。
然而,当我进入生产环境时,立刻就报错了。
我不能笑也不能哭。
最好先在测试环境中运行一下,以确保查询语句正确运行。

在 Amazon Linux 2023 上安装 MySQL 8 服务器和客户端

要在AmazonLinux2 02 3 上安装MySQL8 ,首先更新系统,然后添加Oracle YUM源。
安装wget,下载MySQL Yum包并用DNF安装。
启动MySQL服务并将其设置为自动启动。
更改密码并限制远程登录。
创建用户权限并使用新用户进行日常操作。
使用新用户登录MySQL。
完全的!