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;