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