配置mysql

这篇博客详细记录了在Ubuntu16.04系统下如何卸载MySQL5.7并安装MySQL8.0.19的过程,包括安全配置和状态检查。此外,还介绍了如何配置MySQL的C++开发环境,以及远程登录MySQL的配置步骤,包括Windows防火墙的设置,并提供了远程登录的测试方法。
摘要由CSDN通过智能技术生成

1 环境配置

这是一篇ubuntu16.04卸载mysql5.7并安装mysql8.0.19的记录
ubuntu16.04默认安装的是mysql5.7的版本

1.1 卸载mysql

sudo apt-get autoremove --purge mysql-server 
sudo apt-get remove mysql-common
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

// 将mysql的一些没卸载完的依赖库自动清除

sudo apt autoremove

1.2 安装mysql8.0.19

选择APT安装,https://dev.mysql.com/downloads/repo/apt/
// 这一步是把MySQL服务器,客户端和其他组件的APT存储库添加到我们的系统的软件包源列表中
// 可直接选择默认的配置,选择好了之后会跳到第一页,选第一页的ok选项

sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb 

// 把上一步配置的APT库更新到系统软件列表中,否则会下载默认的mysql版本,即5.7

sudo apt-get update

// 安装MySQL服务器

sudo apt-get install mysql-server

1.3 为了安全起见,可以增加步骤(也可以不用)

sudo mysql_secure_installation

会出现几个主要问题:除了基础的改密码之外,其他分别是:删除匿名用户?禁止远程root登录?删除测试数据库并访问它? 现在重新加载特权表?

1.4 查看状态 开启 关闭

service mysql status
service mysql start
service mysql stop

2 配置MySQL的c++开发环境

sudo apt-get install libmysqlclient-dev

2.1 查看mysql的头文件和库文件路径

mysql_config --cflags --libs

3 远程登录mysql配置

在服务器端登录:

mysql -u root -p
USE mysql;
UPDATE user SET host = "%" WHERE user = "root";
select host, user from user;

这一步不能少,不然无法远程登录

flush privileges;    

3.1 在windows中可能还需要配置防火墙

搜索防火墙,选择"windows defender 防火墙",点击“高级设置”,点击左侧"入站规则"后再点击右侧的"新建规则":
选择“端口”->“下一步”
选择"TCP"->"特定本地端口"输入3306->“下一步”
后面选择默认情况。

3.2 测试,假设服务器IP为:192.168.106.250

在主机上远程登录服务器:

mysql -u root -p -h 192.168.106.250

若服务器没有密码:

mysql -u root -h 192.168.106.250

4 一个简单的c++操作mysql数据库demo

mysql.pro

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp \
    src/database.cpp

INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lm -lrt -lssl -lcrypto -ldl

HEADERS += \
    include/database.h

database.h

#ifndef DATABASE_H
#define DATABASE_H

#include <mysql.h>

//tcp
//#include <sys/socket.h>
//#include <netinet/in.h>
//#include <unistd.h>
//#include <arpa/inet.h>

#include <string>

using namespace std;


class Database
{
private:
    MYSQL mysql;
    const char *server;   // 服务器地址
    const char *user;     // 用户名
    const char *pwd;      // 密码
    const char *basename; // 数据库名
    int port;         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值