Ubuntu系统部署Mysql8.0后设置不区分大小写

部署MySQL

bash 复制代码
# 更新系统软件包列表
sudo apt update

# 安装MySQL Server
sudo apt install mysql-server

# 在安装时,系统会自动进行初始化,安装完成后MySQL已经处于运行状态

# MySQL常见命令
#启动MySQL
sudo systemctl start mysql

#停止MySQL
sudo systemctl stop mysql

# 设置MySQL开机自启
sudo systemctl enable mysql

# 检查MySQL运行状态
sudo systemctl status mysql

查看MySQL是否区分大小写

bash 复制代码
# 登录MySQL服务器
sudo mysql -u root -p

#查询MySQL是否不区分大小写
select @@lower_case_table_names;
lower_case_table_names = 0:表名存储为给定的大小写,比较时区分大小写(默认在Linux上)。
lower_case_table_names = 1:表名存储在磁盘是小写的,但比较时不区分大小写(默认在Windows上)。
lower_case_table_names = 2:表名存储为给定的大小写,但比较时转换为小写(默认在macOS上,但在Linux上不支持此设置)。

设置MySQL不区分大小写

bash 复制代码
#退出MySQL,关闭服务
sudo systemctl stop mysql 

#删除目录
sudo rm -rf /var/lib/mysql

#重新创建目录
sudo mkdir /var/lib/mysql

#设置权限
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 750 /var/lib/mysql

#编辑MySQL配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

#在[mysqld]下增加配置
lower_case_table_names=1

#保存退出编辑文件
:wq

#初始化数据库
注:此操作会导致数据库初始化,并生成新密码,请提前备份数据表结构和数据!!!
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1

登录MySQL

bash 复制代码
#日志中查看新生成的密码
sudo cat /var/log/mysql/error.log | grep password

#登录MySQL,输入日志中的密码
mysql -uroot -p

#修改MySQL密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'you_password';

#刷新配置使其生效
FLUSH PRIVILEGES;

#查询是否修改成功,lower_case_table_names = 1则成功
select @@lower_case_table_names;

设置MySQL远程连接

bash 复制代码
#新建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'you_password';

#授权
GRANT ALL PRIVILEGES ON *.* TO 'robot'@'%' WITH GRANT OPTION;

#刷新配置使其生效
FLUSH PRIVILEGES;
相关推荐
青山木4 分钟前
秒杀系统设计(二):数据正确性——防超卖、分布式锁与一人一单
分布式·后端·mysql·中间件·架构
LongRunning7 分钟前
【Linux】RK3568-系统镜像(六)
linux
ao-weilai7 分钟前
MySQL数据库:MySQL基础概要
数据库·mysql
阳光九叶草LXGZXJ23 分钟前
达梦数据库-学习-68-dmasm0X_XXXXXX.log日志激增
linux·运维·数据库·sql·学习
KING-WU51226 分钟前
Linux 工具之 yum、vim、gcc
linux·运维·服务器·后端
Mortalbreeze28 分钟前
MySQL 基础篇(三):一文掌握 MySQL 常见数据类型
linux·服务器·数据库·mysql
zhangrelay44 分钟前
机器人或计算机智能与时间相关案例汇总(ROS2-ROS1)
linux·笔记·学习·ubuntu·机器人
沫璃染墨1 小时前
《从零入门Linux系统篇(五十三):线程篇·六——线程互斥详解:从并发问题到mutex互斥锁》
linux·运维·服务器·开发语言·后端·架构·系统架构
程序员-Benothing1 小时前
Shell循环教程:for、while、until、break、continue详解
linux·运维·服务器
Zhang~Ling1 小时前
Linux网络:五种IO模型及其工作原理与应用
linux·网络·php