Ubuntu虚拟机安装mysql并用Navicat连接

1. ubuntu安装mysql

环境:VMware15.5.1 + ubuntu server 20.10

  1. 使用apt安装

    sudo apt update
    sudo apt install mysql-server -y
    

    通过apt安装十分简单,但是安装的是5.7 不是最新的。

  2. 安装最新版的mysql

    image-20201209185644588

    从mysql的官网下载,对应版本的 apt 配置程序。下载后上传到服务器(也就是虚拟机)

    image-20201209190012821

    执行安装命令:

    dpkg -i mysql-apt-config_0.8.16-1_all.deb
    

    出现界面:

    image-20201209190537042

    然后执行:

    sudo apt update
    apt install mysql-server
    

    image-20201209191212776

    设置root账户的密码。

    完成后登陆mysql,可以发现安装的就是最新版。

    image-20201209191520578

2. 启动和停止mysql

启动: service mysql start

停止:service mysql stop

重启:service mysql restart

查看状态:service mysql status

image-20201210175345134

3. 卸载mysql

sudo apt purge mysql-server # 卸载mysql
sudo apt autoremove  # 清除依赖			

4. navicat远程连接mysql

  1. 添加用户

    因为默认的用户 host 都是 localhost ,表示只能本地登录,所以要先创建一个可以有 远程主机登录的账户.

    首先,在电脑上通过 ipconfig 命令,查看在vmware虚拟网络中 自己电脑 的IP地址(如图):

    image-20201209195737780

    -- 创建一个用户名为mochen密码为123456允许192.168.65.1登录的用户
    create user 'mochen'@'192.168.65.1' identified by ‘123456’; 
    
  2. 为用户添加权限

    grant all on *.* to 'mochen'@'192.168.65.1';
    

    这里为mochen用户开启了所有权限。

  3. navicat创建连接

    首先,查看虚拟机的IP地址,在虚拟机中使用 指令 ifconfig

    image-20201210163211506

    使用获得的IP地址创建连接:

    image-20201210163511714

  4. 解决连接特别慢的问题

    这时候点击MySQL_VM打开连接 是非常慢的。

    百度后得知原因:

    默认安装的MYSQL开启了DNS的反向解析。域名解析也可以导致网络程序慢,MySQL在处理新的线程连接请求时,会尝试进行DNS解析,如果在host cache和Hosts里找不到,处理起来就会很慢,一般来说数据库服务器为安全起见是不能连接到外网的,所以dns解析也没办法完成,这就可以解释为什么这么慢了,可以在mysql的配置文件中, 禁用该反向解析功能。

    所以解决方法就是关闭域名解析,网上给的方法是:修改mysqld的配置,即在 my.cnf中[mysqld] 下添加一行:skip-name-resolve

    然而各个版本的配置文件位置有很大的不同,我的mysql版本为:8.0.22 其服务器配置文件在:/etc/mysql/mysql.conf.d/mysqld.cnf 在其中的[mysqld]下加入 skip-name-resolve 即可。

    image-20201210175054692

    保存后,重启mysql即可。

5. 删除账户

在ubuntu的mysql上以root身份登陆,通过 drop user ''userName@‘host’; 删除用户,发现会报错:

image-20201209194828054

根据提示可知,是因为默认的root账户并没有SYSTEM_USER权限。

所以,需要先给root赋予SYSTEM_USER权限:

grant SYSTEM_USER on *.* to 'root'@'localhost';
-- 或者 赋予 root 全部权限
grant all on *.* to 'root'@'localhost';

然后才能通过 drop user 语句删除用户。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值