概述
背景是这样的:
有个客户要尝试做 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
回车即可
最后
以上就是高挑煎蛋为你收集整理的[MySQL]mysql 安装之后没有 mysql 数据库问题解决的全部内容,希望文章能够帮你解决[MySQL]mysql 安装之后没有 mysql 数据库问题解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复