安装好mysql后,正常使用(使用的是rpm版安装的)

service mysqld start | stop | restart

不会出现这个问题。

我遇到的情况是在凝思操作系统上,已经存在了一个mysql。网上查找了一些资料,卸载,后可能卸载不干净,使用上面命令mysql启动不了。出现的报错和以前卸载前的东西有关。

因此采用了如下方式启动:

/usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=root&

这里会出现Table 'mysql.user' doesn't exist报错,启动不了。

原因是没有进行初始化,可以理解成service mysql start这个命令里面的一小步。

/usr/sbin/mysqld --initialize --user=root --basedir=XXXX --datadir=XXXX

注意basedir和datadir,特别是这个datadir很关键,mysql.user就是在里面。

这个datadir的目录需要和 /etc/my.cnf里面的配置一致:

[mysqld]

#数据存储路径
# /usr/sbin/mysqld --initialize --user=root --basedir=XXXX --datadir=XXXX
# 设置datadir目录
datadir=/var/lib/mysql

然后停止mysql,注意这里一定要用service去操作

service mysqld stop

特别是有遗留mysql的系统。

随后在/etc/my.cnf中新增跳过密码:

[mysqld]
skip-grant-tables

再启动mysql

/usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=root&

最后就能正常进入修改用户名密码了。

以后启动就用

/usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=root&

停止:

service mysqld stop

补充mysql5.7中修改用户密码的命令:

alter user 'root'@'localhost' identified by '123';

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐