DB连接

作者: ww4u | 来源:发表于2018-04-13 09:50 被阅读0次

使用外网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

相关文章

网友评论

    本文标题:DB连接

    本文链接:https://www.haomeiwen.com/subject/qywqkftx.html