SQL数据库

By | 2026-02-25

MySQL

MySQL安装(wsl)

  1. 安装

    # 安装MySQL
    sudo apt install mysql-server
    # 启动 MySQL 服务
    sudo service mysql start
    # 检查状态
    sudo service mysql status
    # 如果启动成功,现在可以连接
    sudo mysql
    
  2. 允许外部连接

    # 编辑 MySQL 配置文件
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    # 找到 bind-address 行,修改为:
    bind-address = 0.0.0.0
    # 或者注释掉这行
    # bind-address = 127.0.0.1
    # 重启 MySQL
    sudo service mysql restart
    # 确认现在监听所有接口
    sudo netstat -tlnp | grep 3306
    # 应该显示 0.0.0.0:3306
    # 获取wsl的ip地址
    ip addr show eth0 | grep inet
    # 或
    hostname -I
    
  3. 创建账号

    -- 查看当前用户和主机
    SELECT user, host FROM mysql.user;
    -- 方法1:创建新用户允许从任何 IP 连接
    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    -- 方法2:或修改现有用户允许从任何 IP 连接
    -- 注意:'username'@'localhost' 和 'username'@'%' 是不同的用户
    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    -- 或者如果用户已存在:
    -- RENAME USER 'username'@'localhost' TO 'username'@'%';
    -- 授予权限(根据需要调整)
    GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';
    -- 或者授予所有数据库的权限
    -- GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
    -- 刷新权限
    FLUSH PRIVILEGES;
    -- 验证
    SELECT user, host FROM mysql.user;
    
  4. 创建数据库

    # 创建数据库
    CREATE DATABASE balance_db
    CHARACTER SET utf8mb4 
    COLLATE utf8mb4_unicode_ci;
    # 授予用户权限
    GRANT ALL PRIVILEGES ON balance_db.* TO 'username'@'%';
    # 刷新权限
    FLUSH PRIVILEGES;