Ubuntu安装MySQL并远程连接控制

目录

1、卸载MySQL

2、安装MySQL

3、初始化配置MySQL

4、登录MySQL

5、新建用户

6、修改MySQL配置文件

7、数据库工具远程连接​​​​​​​

系统版本:Ubuntu18.04

本文演示的MySQL版本为5.7,需要安装8.0版本的可以点击查看下方的链接

Ubuntu安装 MySQL8.0

1、卸载MySQL

本人的另一篇文章:Ubuntu卸载MySQL

2、安装MySQL

  1. 更新软件源

    sudo apt update
  2. 安装 MySQL 5.7

    sudo apt install mysql-server -y
  3. 验证 MySQL是否正确安装

    sudo systemctl status mysql.service
  4. ● mysql.service - MySQL Community Server
       Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: e
       Active: active (running) since Wed 2023-02-22 03:34:06 PST; 1h 25min ago
     Main PID: 1227 (mysqld)
        Tasks: 29 (limit: 4622)
       CGroup: /system.slice/mysql.service
               └─1227 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pi
  5. 如果你没有看到类似上面显示“Active: active (running)”,使用命令启动MySQL服务

    sudo systemctl start mysql.service

3、初始化配置MySQL

  1. 配置和保护 MySQL

    sudo mysql_secure_installation
  2. 接下来会依次设置一些选项

  3. 你是否想使用 “ 密码有效强度(validate password component)”。

  4. 如果你想使用它,你将必须选择一个最小密码强度(0 – 低,1 – 中,2 – 高)。你将无法输入任何不遵守所选规则的密码。如果你没有使用强密码的习惯(本应该使用),这可能会配上用场。如果你认为它可能有帮助,那你就键入 y或者 Y,按下回车键,然后为你的密码选择一个强度等级和输入一个你想使用的密码。如果成功,你将继续强化过程;否则你将重新输入一个密码。

  5. 本人建议是输入“y”启用,然后设置一个密码强度设置(如:2),并输入一个强密码,例如“@Aa123456”。

  6. 接下来的几个设置,建议都是“y”。

  7. “ 移除匿名用户(remove anonymous user)”

  8. “ 禁止 root 远程登录(disallow root login remotely)”

  9. “ 移除测试数据库及其访问(remove test database and access to it)”

  10. “ 重新载入权限表(reload privilege tables now)”

4、登录MySQL

  1. 登录

    mysql -h host_name -u user -p
  2. 代码解释:

  3. -h 用来指定一个主机名。如果这个MySQL服务被安装到其他机器上,那么会有用。如果没有,请忽略它

  4. -u 指定登录的用户

  5. -p 指定你想输入的密码

  6. 你还可以在命令行最右边的 -p 后直接输入密码,不过出于安全原因不建议这样做。例如用户“root” 的密码是“1234”的登录命令:

    mysql -u root -p1234
  7. 如果你登录成功,会看到类似这样的界面

  8. mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.21-1ubuntu1 (Ubuntu)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
  9. 查看当前有哪些数据库

    show databases;
  10. +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
  11. 进入mysql数据库

    use mysql;
  12. 查看user表的host和user字段

    select host,user from user;
  13. +-----------+------------------+
    | host      | user             |
    +-----------+------------------+
    | %         | alex             |
    | localhost | debian-sys-maint |
    | localhost | mysql.session    |
    | localhost | mysql.sys        |
    | localhost | root             |
    +-----------+------------------+
    5 rows in set (0.00 sec)
  14. 可以看到root对应的host是localhost,只允许本地连接,需要将对应host改成"%",表示允许所有ip远程连接,这里对于root账户一般可不开远程连接,一般新建账号再分配权限后开远程连接权限

    update user set host='%' where user='用户名';

5、新建用户

  1. 创建新用户
    create user '新用户名'@'%' identified by '密码';
  2. 建议使用复杂密码,例如“@Aa123456”。要不然可能会遇到错误码1819,说你的密码不符合设置好的安全等级

  3. 参考:MySQL错误 ERROR 1819

  4. 给远程连接的权限'%'

    update user set host='%' where user='用户名';
  5. 给新用户授权

    grant all privileges on *.* to '用户名'@'%' identified by '密码' with grant option;
  6. 再次查看user表的host和user字段

    select host,user from user;
  7. 刷新使配置生效

    flush privileges;
  8. 退出MySQL数据库

    \q

6、修改MySQL配置文件

  1. 编辑配置文件

    vim /etc/mysql/mysql.conf.d/mysqld.cnf
  2. 注释掉bind-address = 127.0.0.1,也就是在前面加上“#”,有的版本可能还会有mysql-bind-addresses = 127.0.0.1,也可以注释掉

    user		= mysql
    pid-file	= /var/run/mysqld/mysqld.pid
    socket		= /var/run/mysqld/mysqld.sock
    port		= 3306
    basedir		= /usr
    datadir		= /var/lib/mysql
    tmpdir		= /tmp
    lc-messages-dir	= /usr/share/mysql
    skip-external-locking
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #bind-address		= 127.0.0.1
  3. 重启MySQL

    sudo systemctl restart mysql-service

参考:Ubuntu18.04 安装MySQL并创建新用户配置远程连接

7、数据库工具远程连接

  1. 你可以在Linux系统上直接下载一个免费的MySQL Workbench 先进行Linux本地的测试,然后再用Windows上的Navicat通过网络连接。
  2. Linux上用终端输入“ip a”查看当前ip地址
  3. 虚拟机设置网络桥接,让虚拟机直接访问到路由器
  4. Windows上的Navicat再通过ip、用户名、密码连接
  5. 最终实现windows上的Navicat控制Linux虚拟机上的MySQL数据库

参考:Navicat访问Linux数据库

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值