1. 问题描述
安装MySQL后,一般来说默认root用户的密码是空的,但是由于某种原因(本人暂时还不知道为什么)导致密码并不为空,所以登陆不了(登陆不了还有可能没有启动mysql服务)
2. 解决办法:
先登陆服务器,找到自己的my.cnf文件,通常会在 /etc目录下。
# find / -name my.cnf //查找mysql配置文件my.cnf文件
# cp /etc/my.cnf /etc/my.cnf.bak //修改之前先备份一下
# vim my.cnf //编辑mysql配置文件
/mysqld //搜索关键字
在[mysqld]下面加上 skip-grant-tables ,如下图所示:
作用是登陆时跳过登陆认证,换句话说就是root什么密码都可以登陆进去,然后:wq保存退出后.
service mysqld restart//重启mysql。
现在不论什么密码都可以登陆root用户了。
接下来,在Linux中输入如下命令:
mysql -uroot -p
mysql> use mysql;
mysql> update user set password=password('123') where user='root';
mysql> flush privileges;
退出mysql:exit
删除skip-grant-tables
重启mysql,完成。
service mysqld restart
下面重新登录到MySQL:
mysql -uroot -p 123
此时,就可以通过重设的密码以root用户的身份登陆了,后续才能以root用户的身份设置远程访问的权限。
3. 远程访问
3.1 下面开始设置mysql的远程访问的权限
#use mysql;
#GRANT ALL ON *.* TO root@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
#flush privileges;
#exit
完成设置过程如下:
3.2 通过Navicat远程访问MySQL数据库
-
设置完成之后,就可以通过navicat工具进程远程连接操作了,新建一个mysql连接:
点击测试连接,如果没有问题后就可以点击确定按钮了。