欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > linux版mysql8配置表名不区分大小写

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

2025/5/1 21:57:42 来源:https://blog.csdn.net/qq_44316726/article/details/140574043  浏览:    关键词:linux版mysql8配置表名不区分大小写

mysql8的安装步骤可参考:
mysql8的安装步骤

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

[mysqld]
lower_case_table_names=1

我们就需要重新初始化mysql

1 备份数据库文件

2 停止mysql服务

systemctl stop mysqld.service 

3 删除数据库文件

删除之前,最后备份一下

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

4 配置

vim /etc/my.cnf

[mysqld]
lower_case_table_names=1

在这里插入图片描述

5 初始化

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

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

在这里插入图片描述

6 启动mysql服务

systemctl start mysqld.service

7 登录mysql并设置密码

mysql -uroot -p

在这里插入图片描述
给root用户修改密码,新的密码为:root
注意,需要再sql命令行当中执行

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

在这里插入图片描述

8 图形化工具远程登录

1 当前问题
在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。
在这里插入图片描述
在Linux系统MySQL下测试

mysql -uroot -puse mysql;select Host,User from user;

在这里插入图片描述
可以看到root用户的当前主机配置信息为localhost。

2 修改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。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词