使用外网IP连接不上
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表中看到
-
用户权限可以在 tables_priv 表中看到
-
使用IP
-
使用计算机名
- 计算机名访问貌似比较慢,可能后台需要一个解析过程
在本地需要启动MYSQL
- 计算机名访问貌似比较慢,可能后台需要一个解析过程