linux mysql8大小写敏感问题

问题描述

在windows或者macOs,mysql对表明的大小写是不敏感的,但是在linux上是敏感的。笔者写了一个程序,程序里的sql语句没有注意大小写问题,访问windows的mysql没有问题,但访问Linux的就出问题了。于是着手解决这个问题,让linux的mysql也变得大小写不敏感。

让linux 的mysql 变成大小写不敏感

设置这个是在mysql初始化的时候进行的。也就是mysql安装完成之后,使用数据库前进行的。一旦mysql完成初始化,就不能设置大小写敏感属性了。如果mysql已经投入使用。修改大小写属性的方法就是备份数据库->然后清空mysql的安装目录->修改大小写敏感属性->重新初始化mysql->重新设置用户名和密码->导入备份的数据库。

备份

mysqldump --routines -uroot -p databaseName --result-file=databaseName.sql

只能一个数据库一个数据库地备份。 --result-file能解决windows下的字符集问题。如果不用–result-file 而用 > 重定向符号,在windows上会出现字符集问题,因为windows > 写入文件不是用utf-8字符集。而mysql默认是utf-8字符集。

重设

sudo systemctl stop mysql
sudo rm -rf /var/lib/mysql 
sudo mkdir /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在这里插入图片描述

sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1
systemctl start mysql

查看数据库初始密码

sudo cat /var/log/mysql/error.log | grep temporary

在这里插入图片描述
登录数据库

mysql -uroot -p

下面不是必须,视自己需要
修改数据库密码

alter user 'root'@'localhost' identified by '12345';

修改主机

update mysql.user set host = '%' where user = 'root';

修改监听ip

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

:

systemctl restart mysql

恢复备份的数据库

事先创建好相应的数据库。

mysql -uroot -p databaseName < databaseName.sql
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值