Ubuntu20.04版本部署MySQL8.0关闭库名表名区分大小写和自定义数据目录(datadir)路径

本篇文章记录关闭数据库表名库名区分大小写和设置自定义数据目录,安装时建议一个一个步骤进行,这样比较容易成功,下面是设置关闭区分表名库名大小写的。

一、关闭库名表名区分大小写

1、先安装数据库

步骤如下:

bash 复制代码
# 第一步:更新源
sudo apt-get update
# 第二步:安装MySQL服务
sudo apt-get install mysql-server
# 第三步:检查安装版本(默认安装版本8.0.36)
mysql --version
# 第四步:检查MySQL运行状态
systemctl status mysql
# 第五步 配置远程访问,在Ubuntu下MySQL缺省是只允许本地访问的
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf  
#找到 bind-address 修改值为 0.0.0.0(开启远程访问)
# 重启mysql
$ systemctl restart mysql

2、设置数据库关闭表名库名区分大小写

MySQL 8.0数据库名和表名默认是区分大小写的,但部署的项目需要关闭,所以服务器部署时需要设置关闭,好像还不能通过执行命令关闭,只能在安装时在MySQL的配置文件中一开始就设置关闭的字段,官方文档建议在初始化数据库时设置。

bash 复制代码
lower_case_table_names=1

使用于初次安装时使用,若使用后再需要修改,请先进行数据备份。修改步骤如下:

bash 复制代码
# 第一步:停止MySQL服务
systemctl stop mysql
# 第二步:备份配置文件
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.backup
# 第三步:停止服务
sudo service mysql stop
# 第四步:卸载刚安装的MySQL
sudo apt-get --purge autoremove mysql-server
# 第五步:删除目录/var/lib/mysql
sudo rm -rf /var/lib/mysql
# 第六步:还原配置文件
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf.backup /etc/mysql/mysql.conf.d/mysqld.cnf
# 第七步:编辑配置文件
# 在myisam-recover-options  = BACKUP下添加lower_case_table_names=1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 第八步:重新安装MySQL
sudo apt-get install mysql-server
# 安装过程中提示
# 配置文件 '/etc/mysql/mysql.conf.d/mysqld.cnf'
# ==> 系统中的这个文件或者是由您创建的,或者是由脚本建立的。
# ==> 软件包维护者所提供的软件包中也包含了该文件。
#   您现在希望如何处理呢? 您有以下几个选择:
#    Y 或 I  :安装软件包维护者所提供的版本
#    N 或 O  :保留您原来安装的版本
#      D     :显示两者的区别
#      Z     :把当前进程切换到后台,然后查看现在的具体情况
# 默认的处理方法是保留您当前使用的版本。
# *** mysqld.cnf (Y/I/N/O/D/Z) [默认选项=N] ?

# 选择N,使用自定义的文件版本
# 第九步:重启服务
systemctl start mysql
# 查看服务状态
systemctl status mysql

检查是否修改成功

bash 复制代码
sudo mysql -u root -p  # 输入root用户密码

mysql> use mysql

mysql> SHOW VARIABLES LIKE 'lower_case_%';

修改成功

二、 自定义数据目录(datadir)路径

1、停止MySQL服务

bash 复制代码
sudo systemctl stop mysql  # 停止MySQL服务

2、 将data目录移到自定义的目录下面,我们的自定义目录 /mnt/sdc/mysql_data

bash 复制代码
sudo mv /var/lib/mysql /mnt/sdc/mysql_data  # 移动data目录到指定位置

3、 修改配置文件

bash 复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf  # 编辑配置文件

修改默认的路径datadir=/var/lib/mysql,替换为datadir=/mnt/sdc/mysql_data

4、更新AppArmor配置(如果已启用)以允许MySQL在新路径中读写。

编辑AppArmor配置文件:

bash 复制代码
sudo vim /etc/apparmor.d/usr.sbin.mysqld

确保包含新的数据目录路径,例如:

/mnt/sdc/mysql_data/mysql/ r,
/mnt/sdc/mysql_data/mysql/** rwk,

重新加载AppArmor配置:

bash 复制代码
sudo systemctl reload apparmor

参考文献

1、Ubuntu 20.04 安装MySQL 8,修改数据库名和表名默认区分大小写_ubuntu20.04 mysql8 区分表大小写-CSDN博客

2、ubuntu20.04 安装mysql8(小白版)_ubantu20.04安装mysql8和nacos-CSDN博客

3、Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感-CSDN博客

4、lowercase - lower_case_table_names=1 on Ubuntu 18.04 doesn't let mysql to start - Stack Overflow

5、https://blog.51cto.com/u_16213313/7183684

6、https://blog.csdn.net/koodoc/article/details/136611559

相关推荐
DataY7 分钟前
MySQL CDC 直接写进 Doris 汇总模型:同步即汇总,明细不用搬两遍
数据库
琳达爱分享9 分钟前
客服改了地址,发货任务把它改了回去:一次没人报错的覆盖
数据库
IT大白鼠13 分钟前
渗透测试实战从靶场搭建到渗透流程——第 8 篇 · 服务型靶标(上):MySQL 双版本写文件链
数据库·mysql·渗透测试
piaoyiren37 分钟前
Python FTP 服务端项目详细功能文档
网络·数据库·python
少年的范儿39 分钟前
Windows 安装 MySQL 8.4 教程(ZIP 解压版):配置 my.ini、初始化数据库与启动服务
数据库·windows·mysql
l1t1 小时前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
麦壳饼1 小时前
SonnetDB:PID 调参实战:阶跃响应分析与参数解读
数据库·sonnetdb
猿究院--Cu-Sn合金2 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
IvorySQL2 小时前
PostgreSQL 日报|Anonymizer 3.3 修复高危漏洞(10 月 29 日)
数据库·postgresql
geovindu2 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构