当前位置: 代码网 > it编程>数据库>Mysql > linux版mysql8配置表名不区分大小写问题

linux版mysql8配置表名不区分大小写问题

2024年12月01日 Mysql 我要评论
mysql8配置表名不区分大小写如果在安装mysql8,初始化之前,没有在my.cnf配置忽略大小写配置:[mysqld]lower_case_table_names=1我们就需要重新初始化mysql

mysql8配置表名不区分大小写

如果在安装mysql8,初始化之前,没有在my.cnf配置忽略大小写配置:

[mysqld]
lower_case_table_names=1

我们就需要重新初始化mysql

1 备份数据库文件

停止mysql服务

systemctl stop mysqld.service 

2 删除数据库文件

删除之前,最后备份一下

sudo rm -rf /var/lib/mysql/*

3 配置

vim /etc/my.cnf

[mysqld]
lower_case_table_names=1

4 初始化

初始化,此时就会根据我们更改的新配置文件就行配置

sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

5 启动mysql服务

systemctl start mysqld.service

6 登录mysql并设置密码

mysql -uroot -p

给root用户修改密码,新的密码为:root

注意,需要再sql命令行当中执行

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

7 图形化工具远程登录

当前问题

在用sqlyog或navicat中配置远程连接mysql数据库时遇到如下报错信息,这是由于mysql配置了不支持远程连接引起的。

在linux系统mysql下测试

mysql -uroot -p

use mysql;

select host,user from user;

可以看到root用户的当前主机配置信息为localhost。

修改host为通配符%

host列指定了允许用户登录所使用的ip。

比如user=root host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。

user=root host=localhost,表示只能通过本机客户端去访问。

而 %是个通配符 ,如果host=192.168.1.%,那么就表示只要是ip地址前缀为“192.168.1.”的客户端都可以连接。

如果 host=% ,表示运行任何所有的ip都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的ip进行设置。

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

host修改完成后记得执行flush privileges使配置立即生效:

flush privileges;

测试

如果安装的是 mysql5.7 版本,接下来就可以使用sqlyog或者navicat成功连接至mysql了。

如果安装的是mysql8 版本,navicat会成功连接至mysql,而sqlyog连接时还会出现如下问题:

这种问题只会发生在安装mysql8.0版本当中出现

原因如下:

配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。

解决方法:

linux下 mysql -u root -p 登录你的 mysql 数据库

mysql -uroot -p

然后执行这条sql: 密码为:root

alter user 'root'@'%' identified with mysql_native_password by 'root';

然后在重新配置sqlyog的连接,则可连接成功了,ok。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com