最近因为设置MySQL不区分大小写踩了很多坑,把解决过程记录下来。
首先我这个是阿里云全新服务器,操作系统:Ubuntu 22.04 64位
连接到服务器后:
1 安装MySQL
1.1 更新软件包
以下命令皆已单独放至代码块内,直接复制运行即可。
sudo apt update
1.2 安装MySQL服务器
udo apt install mysql-server
安装界面
选择Y
这时候就安装成功了
注意一点,如要开启不区分大小写,因为Ubuntu下的MySQL重启不能加载修改过的my.cnf配置文件,所以建议先进行设置,否则后期比较麻烦。
2 设置不区分大小写
2.1 切换到配置文件目录下
cd /etc/mysql/mysql.conf.d/
2.2 编辑mysqld.cnf配置文件
vim mysqld.cnf
2.3 在[mysql]这行下面添加配置
lower_case_table_names=1
2.4 允许远程访问注释(选做)
如果是内网访问,不开发外网,无需注释
# bind-address = 127.0.0.1
输入:wq保存退出
2.5 重建并修改/var/lib/mysql目录权限
依次执行以下命令
sudo rm -rf /var/lib/mysql/
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
// 初始化mysql
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1
3 启动MySQL
3.1 重启
sudo service mysql restart
3.2 查看root临时密码
grep "A temporary password" /var/log/mysql/error.log
3.3 进入MySQL
sudo mysql -u root -p
3.4 设置无需sudo即可访问MySQL
ALTER USER'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
3.5 修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
3.6 切换到mysql数据库
use mysql;
3.7 设置root用户可以远程连接
update user set Host = '%' where user = 'root';
3.8 刷新权限
FLUSH PRIVILEGES;
3.9 查看不区分大小写是否生效,0-区分大小写,1-不区分大小写
show variables like '%case_table%';