关于Navicat fro Mysql 连接虚拟机(Ubuntu)中的mysql问题记录

在Mysql安装中,默认的有root用户,但是root用户的默认连接Host也是localhost或者127.0.0.1,也就是限制了root用户作为本地连接使用;我个人来说,建立新账户也是安全性和更加方便。

  1. 查看数据库    show databases;
  2. 选中数据库    use mysql;
  3. 接着查看当前数据库账户信息      select user,host from user;

根据观察,这些用户只能通过本地连接。如果需要做外部ip连接呢?

可以看到用户host显示都是只能本地使用的。现在为了让我们可以远程的连接服务器数据库,我们需要新建一个具有远程连接权限的数据库账户,使用如下命令创建:

  1. 创建一个souvc的用户,并赋予权限     grant all privileges on *.* to duankk@"%" identified by "admin123" with grant option;
    1. grant是授权命令,其中souvc是我们连接用的用户名、”abc123″是连接密码,用户名后面的“%”通用符表示允许各host操作。
  2. 刷新数据库账户权限:      flush privileges;
  3. 刷新权限之后,重新查询。    select user,host from user;
  4. 退出数据库命令        exit;
  5. 重启mysql数据库服务器        service mysql start

登录Ubuntu服务器,查看服务器的IP。

  1. 查看服务器的ip   ifconfig
  2. 进入到mysql服务器配置文件处   cd /etc/mysql/mysql.conf.d/
  3. 编辑mysqld.cnf文件    vim mysqld.cnf
  4. 打开文件后,找到bind-address=127.0.0.1 在其前面加上#注释掉(有时可能的需要重启服务器), 然后添加如下代码:
    1. skip-external-locking                           skip-name-resolve
  5. 重新启动mysql服务
    1. service mysql restart
  6. 就可以用授权的用户名和密码连接了。
sudo apt-get install mariadb-server

新版本Mariadb安装后无法登录问题的解决
给新机器Ubuntu安装的Mariadb后无法登录,通过网上各种方法修改root用户密码,仍然无法解决,耗费几个小时!

经过看日志和查手册,发现原因如下:

ubuntu确实安装没有启用root用户,所以没有root用户密码,而新安装的mariadb使用的系统root的密码(初始安装后)
通过原来的方法重置password无效(原因就是采用了unix_socket认证)
那么,解决方法如下: 
直接进入root用户下,就可以免密码登录!

对于ubuntu而言,需要启用root用户密码,方法如下:

sudo passwd
输入sudo的密码后,再次输入两次root用户密码后即可。

然后,

xx>su - root
root>mysql -u root //直接回车就可以进入,无需密码,无论什么密码也行,因为他不需要!
mysql>

如果,你希望采用原来的mysql密码方式,需要修改认证插件,方法如下:

// 切换到root用户, 无需密码进入Mysql
update mysql.user set plugin='mysql_native_password' where user='root';
update mysql.user set password=password("您的密码") where user='root'; 
FLUSH PRIVILEGES;

这样就可以在任何用户下访问mysql了。

为啥要升级成缺省为unix_socket呢?
对于CentOS,RedHat而言,使用root用户时,无需密码登录。 
而且,也符合安全准则,新版本的MySQL密码会在日志中输出,MariaDB以前保持空密码,现在意味着,用root用户,无需登录。

猜你喜欢

转载自blog.csdn.net/DuanKun7323/article/details/82985960