Ubuntu设置MySQL使用root远程访问

一、修改 MySQL 配置文件

修改 MySQL 的配置文件,以允许远程连接。

  1. 打开 MySQL 配置文件 mysqld.cnf​:

    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 找到 bind-address​ 这一行,默认情况下它可能是:

    bind-address = 127.0.0.1
    
  3. 将其修改为:

    bind-address = 0.0.0.0
    

    这将允许 MySQL 监听所有网络接口,而不仅仅是本地回环接口。

  4. 保存并退出编辑器。

    wq!
    
  5. 重启 MySQL 服务以使更改生效:

    sudo systemctl restart mysql
    

二、允许 root​ 用户远程访问

需要允许 root​ 用户从远程主机访问 MySQL。

  1. 登录 MySQL:

    sudo mysql -u root -p
    
  2. 选择 mysql​ 数据库:

    use mysql;
    
  3. 查看 root​ 用户的当前权限:

    select Host, User from user;
    
  4. 如果 root​ 用户的 Host​ 是 localhost​,你需要更新它,或者创建一个新的 root​ 用户允许远程访问。
    更新现有 root​ 用户的 Host​:

    UPDATE user SET Host='%' WHERE User='root';
    

    或者创建一个新的 root​ 用户允许远程访问:

    CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    
  5. 刷新权限:

    FLUSH PRIVILEGES;
    
  6. 退出 MySQL:

    EXIT;
    

三、配置防火墙

如果服务器启用了防火墙(如 ufw​),需要允许 MySQL 的端口(默认是 3306)通过防火墙。

  1. 允许 MySQL 端口:

    sudo ufw allow 3306/tcp
    
  2. 重新加载防火墙规则:

    sudo ufw reload