【写在前面】其实故事要从my.cnf为空,且lower-case-table-names为0开始,linux环境下mysql8.0及其之后的版本对表名和数据库是严格区分大小写的,从而导致我们运行项目时候会报错Table xxx.QRTZ_LOCKS doesn`t exist。但是我已经装好了mysql8.0咋整?接下来跟着我的节奏,只需要5个步骤就能带你解决这个问题。
文章目录
- 1、停服务
- 2、导数据备份
- 3、删目录
- 4、初始化
- 4.1 修改my.cnf
- 4.2 初始化数据库(重装)
- 5、启动赋权
- 5.1 启动服务
- 5.2进入mysql查看表大小写限制
- 5.3 修改密码
- 5.4 本地访问不了服务器数据库
- 5.4.1 查看权限
- 5.4.2 修改权限
- 6、片尾彩蛋
1、停服务
查看服务器状态:
命令行:systemctl status mysqld.service
如果是running表示在跑,如果是dead就是关闭了。
关闭数据库服务
命令行:systemctl stop mysqld.service
2、导数据备份
去数据库表将所有的数据进行备份
表备份命令(有待验证):mysqldump -uroot -p -A > all.sql
另外将之前的文件做个全量备份
文件备份命令:cp -av /var/lib/mysql /var/tmp/
3、删目录
删除原数据库存储数据的目录(上面一步备份了就别担心)
命令行:rm -rf /var/lib/mysql
4、初始化
这里切记如果要让你的mysql不敏感校验大小写的问题,必须得执行下面的操作:
4.1 修改my.cnf
如果你的my.cnf是空的,那就先去加这两行
修改配置文件/etc/my.cnf,在[mysqld]下添加
[mysqld]
lower-case-table-names=1
修改命令:vim /etc/my.cnf 然后按i键盘,改好再按Esc,再输入‘:wq’即可。
4.2 初始化数据库(重装)
【核心设置】命令行:
mysqld --initialize --user=mysql --lower-case-table-names=1
初始化的时候切记有个初始密码哟,一定要记下来,如下图:
5、启动赋权
5.1 启动服务
当我们完成后就可以启动mysql服务了
启动命令:systemctl start mysqld.service
5.2进入mysql查看表大小写限制
进入命令:mysql -u root -p
展示命令:show variables like 'lower_case_table_names';
5.3 修改密码
之前的密码相信很多人估计都记不住,我们要是自己修改的话执行如下:
修改密码操作:
命令行:alter user 'root'@'localhost' identified by 'XXXXXXXXX';
命令行(必须):flush privileges;
5.4 本地访问不了服务器数据库
【mysql 常见错误1130】报错:
1130 Host ... is not allowed to connect to this MySQL server
这样的话主要你本地没有被赋权限访问:
5.4.1 查看权限
查询命令:select host,user from user where user='root';
发现root用户只能localhost访问。
5.4.2 修改权限
命令行:update user set host='%' where user='root';
命令行(必须):flush privileges;
上面两个命令行记得一起依次执行哟,最后一个就是让调整生效的命令。
最后本地测试就可以连接成功啦!