DB连接

使用外网IP连接不上

image.png
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug()<<db.isValid();
//    db.setHostName("127.0.0.1");qDebug()<<db.lastError().text();
    db.setHostName("192.168.131.102");qDebug()<<db.lastError().text();
    db.setDatabaseName("test");qDebug()<<db.lastError().text();
    db.setUserName("test");qDebug()<<db.lastError().text();
    db.setPassword("test");qDebug()<<db.lastError().text();
    bool ok = db.open();qDebug()<<db.lastError().text();
  • mysql -u root -p
mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql创建用户并设置所有权限

1、创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username:用户名;host:指定在哪个主机上可以登录,本机可用localhost,%通配所有远程主机;password:用户登录密码;

2、授权:GRANT ALL PRIVILEGES ON . TO ‘username’@‘%’ IDENTIFIED BY 'password’;

刷新权限:FLUSH PRIVILEGES;

格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";.代表所有权;

@ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

  • 创建用户,分配权限后可以在user表中看到


    image.png
  • 用户权限可以在 tables_priv 表中看到


    image.png
  • 使用IP


    image.png
  • 使用计算机名

    • 计算机名访问貌似比较慢,可能后台需要一个解析过程
      image.png

      image.png

      在本地需要启动MYSQL
      image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容