首页 > 数据库 >WSL-Ubuntu安装Mysql设置密码和忽略大小写

WSL-Ubuntu安装Mysql设置密码和忽略大小写

时间:2024-07-04 11:57:48浏览次数:1  
标签:case sudo Mysql WSL Ubuntu 大小写 names mysql table

在Ubuntu系统中使用apt安装完成Mysql8.0以后,发现数据库对大小写是敏感的,即只能查询到大小写完全匹配的表名和字段名。这时需要设置 lower_case_table_names=1来解决这个问题。具体属性如下(在 Unix 上lower_case_table_names 的默认值为 0,Windows上默认值为 1 ,在 macOS 上默认值为 2):

含义
0 表和数据库名称使用信箱存储在磁盘上 在 CREATE 中指定 TABLE 或 CREATE DATABASE 语句。名称比较是 区分大小写。你不应该设置 如果您在系统上运行 MySQL,则此变量设置为 0 具有不区分大小写的文件名(如 Windows 或 macOS)。如果在不区分大小写的文件系统上使用 --lower-case-table-names=0 强制此变量为 0,并使用不同的 Lettercase,可能会导致索引损坏
1 表名以小写形式存储在磁盘上,名称比较不 区分大小写。MySQL将所有表名转换为 存储和查找时的小写字母。此行为还 适用于数据库名称和表别名
2 表和数据库名称使用信箱存储在磁盘上 在 CREATE 中指定 TABLE 或 CREATE DATABASE 语句,但 MySQL 将它们转换为 查找时小写。名称比较不是 区分大小写。这仅适用于 不区分大小写的文件系统! 表名和视图名是 以小写形式存储,至于 .InnoDBlower_case_table_names=1

设置完成lower_case_table_names=1后,数据库启动失败。官方给出的解释是,lower_case_table_names 属性需要再数据库初始化的之前设定,初始化完成后无法进行修改。针对Ubuntu系统需要在安装前执行以下命令,将大小写敏感属性设置为开启。

最终解决

参考解决方案地址:如何在Ubuntu Server 20.04 LTS上成功安装MySQL 8.0 with lower_case_table_names=1?

完整安装过程

# 更新apt-get系统软件库
sudo apt-get update
# 安装Mysql数据库
# 若已提前准备好配置文件,可直接跳到还原备份文件步骤
sudo apt-get install mysql-server
# 这时候登录数据库,查看 lower_case_table_names 属性时,值为0,会区分大小写
# 停止Mysql服务
systemctl stop mysql
# 备份配置文件
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.backup
# 卸载已安装的Mysql
sudo apt-get --purge autoremove mysql-server
# 删除安装目录 (data默认位置,如有重要数据注意备份)
sudo rm -rf /var/lib/mysql
# 还原配置文件
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf.backup /etc/mysql/mysql.conf.d/mysqld.cnf
# 编辑配置文件 注意:新添加的文本要放到[mysqld]标签下,添加 lower_case_table_names=1
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 再次执行安装命令
sudo apt-get install mysql-server

再次安装时,会提示配置文件已存在,是否覆盖(默认N不覆盖)

登录数据库,查看设置结果:

sudo mysql
mysql> select @@lower_case_table_names;
+--------------------------+
| @@lower_case_table_names |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0.00 sec)

执行安全设置向导

sudo mysql_secure_installation

根据实际情况进行设置:

  1. 是否对密码进行强校验?
  2. 是否移除匿名用户?
  3. 是否允许root用户进行远程连接?
  4. 是否删除test数据库?
  5. 是否设置权限立即生效?

修改Root用户密码

sudo mysql
# 修改密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'password';
mysql> flush privileges;

原文链接:https://blog.csdn.net/qq_26441149/article/details/137736617

标签:case,sudo,Mysql,WSL,Ubuntu,大小写,names,mysql,table
From: https://www.cnblogs.com/linxmouse/p/18283395

相关文章

  • 数据特征采样在 MySQL 同步一致性校验中的实践
    作者:vivo互联网存储研发团队-ShangYongxing本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。一、背景在MySQL的使用过程中,经常会因为如集群拆分、数据传输、数据聚合等原因产生流动和数据复制。而在通常的数据复制过程中,因......
  • 理解MySQL存储引擎:掌握数据存储与管理
    在工作或学习过程中,作为一名数据库管理员或开发者,我们常常需处理大量数据,同时确保数据的可靠性与高效性。MySQL作为最受欢迎的开源数据库之一,其强大的性能和灵活性广为人知。而在MySQL背后的存储引擎则起到了至关重要的作用。本文将详细介绍MySQL各种存储引擎的特性、用途及......
  • RealVNC远程连接Ubuntu20.04(无显示器,开机后可连接)
    场景远程连接工控机时,无法使用VNC连接。需要以下配置菜可以在无屏幕情况下远程直接连接工控机,主要包括:使用Ubuntu内置的vinoVNC提供远程桌面访问。配置自动登录配置虚拟桌面环境Ubuntu20.04配置1、安装Ubuntu内置的桌面共享VNC服务vino。sudoaptinstallvino在“设置->共享->屏......
  • Windows上实现jdk、Mysql(含数据)整体环境和配置以及数据迁移复用(Bat中实现jdk、mysq
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662前后端分离的系统,需要部署在windows服务器上,若后期需要部署的机器较多,则每台机器都需要安装jdk、配置jdk环境变量、安装mysql、配置mysql环境变量......
  • gn、ninja的安装-Ubuntu18.04
    参考文档https://blog.csdn.net/qiuguolu1108/article/details/103842556  ninja的安装一、安装依赖在安装ninja之前,需要安装其依赖re2c。root@ubuntu:~#apt-getinstallre2croot@ubuntu:~#re2c--versionre2c1.0.1二、下载ninja在github中下载ninja,ninjagithub......
  • ubuntu 20+ 安装psycopg2异常
     pipinstallpsycopg2==2.8.6root@hmm-ELK:/mnt#pipinstallpsycopg2==2.8.6Collectingpsycopg2==2.8.6Downloadingpsycopg2-2.8.6.tar.gz(383kB)|████████████████████████████████|383kB11kB/sERROR:Commande......
  • doris 数据库与mysql的不同之处
    1.doris与mysqldoris可以使用mysql驱动进行连接,也支持mysql的部分语法。2.具体分析 清空表数据在mysql中,清空表数据有两种方式:一种是deletefromtable_name,一种是truncatetabletable_name。而在doris中,清空表数据只能使用truncatetabletable_name。deletefrom......
  • vue3+node.js+mysql+electron+express实现用户登录,文章写入删除,全量更新,增量更新,和截
    第一件事情是安装node.js,去官网下,在终端node-v,npm-v有版本号就行了,不必搞环境配置,保姆级别教程,感谢哥有时间。嘻嘻,祝大家开心。1.首先你要创建electron项目打开vscode,新建终端输入代码npminit这个代码是初始化的意思会生成一个文件package.json里面的代码应该是这......
  • 搭建论坛和mysql数据库安装和php安装
    目录概念步骤安装mysql8.0.30安装php安装Discuz概念搭建论坛的架构:lnmp+DISCUZ l表示linux操作系统n表示nginx前端页面的web服务m表示mysql数据库用来保存用户和密码以及论坛的相关内容p表示php动态请求转发的中间件步骤(已经提前安装了nginx)1.关闭......
  • MySQL网络安全&容灾备份
    网络安全主要三个方面。一般云厂商都提供网络相关的安全:白名单、私有网络、SSL加密等。 网络:  MySQL服务器与客户端连接安全SSL(TLS)加密传输。  账户使用较弱的密码或不使用密码,账号安全。valited_password。  账号权限,最小化原则。  网络访问控制,云厂商使用白名单......