阿里云有活动,白嫖了一年的新加坡轻量级服务器,有点卡,有时候要开梯子
 白嫖300元优惠券
目录
- 1 安装启动Mysql服务
 - 2 更改连接权限
 - 2.1 Navicat连接报错1698 -Access denied for user 'root'@''
 
- 3 qt连接云服务器数据库
 
1 安装启动Mysql服务
我使用finalshell连接到了我的服务器,首先安装Mysql服务,运行这两条命令
 sudo apt update
 sudo apt install mysql-server
 
 sudo service mysql start启动mysql服务
 mysql -u root -p输入密码后就进入mysql了
 
2 更改连接权限
阿里云这里添加防火墙规则,开放3306端口
 
 关闭linux的防火墙
 ps -ef|grep firewalld查看防火墙
 systemctl stop firewalld关闭防火墙
 
 在目录找到这个文件,windows是my.ini文件,打开修改bind-address = 0.0.0.0
 
更改mysql的配置文件
 show databases;查看所有的数据库
 
然后use mysql;进入mysql数据库

 show tables;显示表,其中user表里是存放了权限
 
 select user,host from user;进入user表
 
  update user set host = '%' where user = 'root';更新权限
 
 flush privileges;刷新数据库,这样就完成了,通过了网络访问了数据库
 
2.1 Navicat连接报错1698 -Access denied for user ‘root’@‘’
此时navicat报错,查询是新建mysql时没有设置密码
 
 找了好多更改密码的,但是mysql8.0删除了一些东西导致无法使用,最终找到以下语句
 ALTER USER USER() IDENTIFIED BY '123456';
 
 添加成功,123456就是我们数据库的密码,navicat连接是也是用的这个密码,连接成功
 
 直接把book的三个表复制到服务器上的mysql
 
3 qt连接云服务器数据库
在编译器里边能够连接到数据库,但是打包出来的单独程序还是连接不到数据库。
 打包程序跑通数据库
void sqlmange::init()
{
    // 打开数据库
    // 使用 QMYSQ 数据库驱动
    m_db = QSqlDatabase::addDatabase("QMYSQL");
    // 设置数据库名称
    // 数据库名为 my_database
    m_db.setDatabaseName("book");
    // 设置数据库用户名和密码
    // 用户名为 root,密码为 123456
    m_db.setUserName("root");
    m_db.setPassword("xxx");
    // 设置数据库服务器地址
    // 服务器地址为 localhost
    m_db.setHostName("xxx");
    m_db.setPort(3306);
    // 打开数据库
    // 并输出打开结果到调试信息
    bool ret = m_db.open();
    if(ret)
    {
        QMessageBox::information(nullptr,"信息","连接数据库成功");
    }
    else
    {
         QMessageBox::information(nullptr,"信息","连接数据库失败");
    }
    qDebug() <<"数据库连接:"+ m_db.open();
}
                









![[pdf]DDD领域驱动设计批评-幻灯片合集(一)共190页](https://img-blog.csdnimg.cn/img_convert/8688e194e7e24636e4150de98c7146be.png)








