写在前面
一般Linux新安装的MySQL,linux管理员(root用户)是默认可以登录的,直接用root用户登录Linux,直接执行mysql就可以进入,不需要密码,如果你没有(Linux)root用户的话,参照下面这个
https://jingyan.baidu.com/article/fd8044fa1e74035031137ae0.html
如果linux管理员(root用户)也无法直接登陆,可以尝试一下这个(接下来操作在管理员root权限下执行):
修改mysql登陆配置文件,我的mysql配置文件在/etc/my.cnf,有的mysql配置文件叫mysqld.cnf,不同mysql的配置文件名称路径还不一样。在这个配置文件中的[mysqld]这一块中加入skip-grant-tables这句话(这一行之后可以删掉),这样可以linux管理员(root用户)可以免密登陆mysql。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
输入命令重启mysql
/etc/rc.d/init.d/mysqld restart
#查看mysql运行状态
#service mysqld status
直接输入下面命令进入mysql,默认mysql数据库的root用户是没有密码的。
mysql
之后输入下列数据库指令修改root用户的密码为123。
flush privileges;
set password for root@localhost = password('123');
到此mysql数据库的root用户设置完成。
之后,开始解决问题
你会发现(Linux)普通用户是不能登录MySQL的root账号的,会提示没有权限,之后你执行下面我给的链接的代码就行了,(Linux)普通用户就能登录MySQL的root账号了。
解决Linux下普通用户无法使用root连接MySQL服务_许少年的读书笔记-CSDN博客
之所以打上括号(Linux)是因为别把MySQL的root用户和Linux的root用户弄混了,虽然都叫做root,一个是管理MySQL的root,一个是管理Linux的root。