我是靠谱客的博主 高挑煎蛋,最近开发中收集的这篇文章主要介绍[MySQL]mysql 安装之后没有 mysql 数据库问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景是这样的:
有个客户要尝试做 ha ,但是做完 ha 之后发现数据一直没办法同步
经过分析之后觉得可能是因为原来的数据,导致做完 ha 之后数据库进行同步时,发生了主键冲突
比如两个数据库,同样一张表 id 都是 1,没有做 ha 之前没有事情,但是做了 ha 开始数据同步时,发现主键冲突了,这样数据就没办法同步过去了

因为客户那边是测试环境,所以就可以把数据清理了之后重新来
然后我的脑子就抽了,在运行命令 rm -rf /var/lib/mysql/* 时,运行成了 rm -rf /var/lib/mysql ,直接把 mysql 整个目录干掉了

然后我又重新建立了 mysql 目录
mkdir /var/lib/mysql
给这个目录授权
chown mysql:mysql /var/lib/mysql
chmod 750 /var/lib/mysql
然后启动 mysql
mysqld --initialize-insecure
看起来一切正常,但是查看库发现,默认的一些数据库都没有了
在这里插入图片描述
但是查看目录 /var/lib/mysql 目录,它是有 mysql , performance_schema , sys 这些目录的
在这里插入图片描述

按道理来说,有这些目录,在 show databases 时,就应该能看到这些数据库,但是没有
第一反应就是,没有权限,开始给这个文件夹提权
结果还是没用

突然想到,在初始化 mysql 时,我可不可以以特定用户来进行,这样的话是不是默认就能有权限了,原来的初始化命令是 mysqld --initialize-insecure 现在改成 mysqld --initialize-insecure --user=mysql
嗯,问题解决
在这里插入图片描述


扩展:
--initialize 代表" 默认安全"安装(即包括生成随机初始 root 密码),在这种情况下,密码被标记为过期,必须选择一个新密码
--initialize-insecure ,不会 root 生成密码
举个例子:在 mysql 完全清理数据之前,如果运行的命令没有加 -insecure ,那原来的 root 密码就会被标记过期,不能用了
如果运行的命令加了 -insecure ,就不会生成密码,此时进入 mysql 的命令 mysql -uroot 回车即可

reference : https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html

最后

以上就是高挑煎蛋为你收集整理的[MySQL]mysql 安装之后没有 mysql 数据库问题解决的全部内容,希望文章能够帮你解决[MySQL]mysql 安装之后没有 mysql 数据库问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部