Linux下MySQL8的安装使用以及C++到MySQL的连接

本文详细介绍了如何在Linux系统中安装MySQL8,包括从官网下载、使用yum源安装、设置密码和修改密码策略。接着,文章讲解了如何在C++中连接MySQL,包括检查mysql-devel的安装、解决编译错误和动态库链接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL 8 的下载与安装

MySQL 8 的下载

1、 MySQL 8下载安装包可直接登录MySQL官网进行下载,下载链接:MySQL 8 的下载地址 根据自己的系统版本选择(arm 64 与x86 64 通过命令 arch 查询,系统版本通过uname -a 查询
2、 也可通过下载yum源安装,下载链接:https://dev.mysql.com/downloads/file/?id=484922。
3、centos 8通过dnf 包管理直接安装(推荐,这种安装方式不需要设置密码强度等,初始无密码)

MySQL 8 的安装

1、 在下选择的MySQL 8 的安装包为mysql-8.0.17-1.el8.x86_64.rpm-bundle.tar(el8对应linux 8系统)

2、使用Linux系统下载的使用 以下命令,对安装包进行提取。
tar -xvf mysql-8.0.17-1.el8.x86_64.rpm-bundle.tar

3、使用windows系统下载的rpm包,可以先通过ftp传输到Linux系统,再使用上面的tar 命令提取
具体操作:

ftp windows主机ip
ftp->bin  //rpm 等要使用bin模式才能正常传输
fep->get 安装包(带.tar后缀的名字)
ftp->bye   //退出ftp   

4、 对rpm包进行安装,安装包之间存在依赖,需按序安装,安装libs显示缺乏依赖glibc2_28时,手动安装依赖(通过更新gcc版本)或者换低版本的mysql安装。在centos 7 安装(mysql-el7 )依赖装得实在痛苦,还是建议换低版本mysql,或者安装高版本系统的CentOS8.

ls  -l  //列出当前文件夹下所有文件,安装sever  client ,
//rpm -i 可以替换成 yum localinstall ,表示使用本地安装包安装,yum 安装好点
rpm -i  mysql-community-common-8.0.17-1.el8.x86_64.rpm
rpm -i  mysql-community-libs-8.0.17-1.el8.x86_64.rpm
rpm -i  mysql-community-client-8.0.17-1.el8.x86_64.rpm
rpm -i  mysql-community-server-8.0.17-1.el8.x86_64.rpm
rpm -i  mysql-community-devel-8.0.17-1.el8.x86_64.rpm
//带devel字段是开发用到的库以及文件 ,安装以供C/C++连接使用

命令长这个样子

yum源安装

  1. 将下载的rpm包直接安装,安装命令同上,更换文件名即可,然后百度 yum源安装mysql。

自此,MySQL安装完成

MySQL密码设置

登录MySQL

1、启动服务

service mysqld start

若启动失败,

2、获取临时密码

grep "A temprary" /var/log/mysqld.log

记下密码
3、登录MySQL

mysql -u root -p
Enter password: (此处输入刚才记录的密码)

密码修改以及密码强度配置

1、继上述步骤后会,提示输入新密码,可更改简单一点的,容易输入的,但要包含大小写,数字,特殊字符,长度大于8
2、基于密码复杂度太高,不适合学习使用,因此修改密码后对密码安全策略进行修改

show variables like 'validate_password%';  //后面可以用'validate_pa%'; 减少点输入

出现如下信息
在这里插入图片描述
此处为对密码的要求

set global validate_password.length=1;//可通过这样的语句进行修改set global xxxx.xxx=x;

length表示最小长度,mixed_case_count表示大小写,number_count表示含有数字位数,policy表示验证强度,special_char_count 表示特殊字符。

在下愚钝,不明白修改后密码依旧无法更改为超级简单的,所以修改了

set global validate_password.check_user_name=0;

做到这一步之后,密码就可以随心所欲的设置了。

alter user 'root'@'localhost' identified by '新密码‘;  //修改密码用这个语句,其他语句会报错1064

到了这里,MySQL的安装就大功告成了,接下来就是C++连接MySQL的部分了。

C++连接MySQL

注意到之前安装的那个带devel字段的安装包,就是这个东西,用来提供mysql/mysql.h的头文件。

下面上过程:

检查有无安装mysql-devel

rpm -qa |grep  mysql

若显示的字段中有mysql-community-devel-8.0.17-1.el8.x86_64,证明成功安装了devel。

2、创建一个C++文件sql.cpp,连接,检测能否正确调用mysql.h

//sql.cpp检测mysql.h使用
#include<iostream>
#include<mysql/mysql.h>
using namespace std;

int main(){
	MYSQL  mysql;
	mysql_init(&mysql);
	
	mysql_close(&mysql);
	return 0;
}
g++ sql.cpp   //执行成功会生成a.out文件
./a.out  

3、然而上述的g++命令生成失败了,查看错误,可以注意到是包含mysql.h的时候出事了,定位到那里修改

cd /usr/include/mysql/
ls //列出文件
vim  mysql_com.h  //中间寻找过程就不写了,就是这个文件里面一个符号出错了
//vim 修改mysql_com.h,没有安装vim 的用vi mysql_com.h 效果一样

进去之后在命令行模式下输入 1005G 定位到1005行,进去在1005行前,直接1005回车也行, 不同版本下面语句的位置不一样,使用 /include 查找下面语句所在位置

将mysql_com.h中1005行的
#include<mysql/udf_registration_types.h>修改为#include”mysql/udf_registration_types.h“

动态库链接

到了这里,你以为事情就这么结束了?
1、抱着大功告成的心态,又回来了这个sql.cpp的文件位置

g++ sql.cpp 

2、这万恶的g++又报错了,报错原因mysql_init()未定义

cd /usr/lib64/mysql/
ls -l

这时候会展示如下图所示在这里插入图片描述
注意这个.so跟.a 结尾的,so是share obj,动态库文件后缀,a是静态库后缀,什么意思我也不知道。
在lib64文件夹下建立一条软链接链接这个21.1.17结尾动态库的文件,这一步涉及动态库的知识,这里就不展开来扯了。

//这一步可以不做,直接使用下一步,也可以通过把libmysqlclient.so 移动到 /usr/lib/,每次链接不用添加文件地址
cd ..
ln -s /usr/lib64/mysql/libmyclient.so.21.1.17  libmyclient.so   //创建一条软连接

这时候再回到刚才的sql.cpp文件所在位置,g++一下终于通过了。

g++ sql.cpp -lmysqlclient -L /usr/lib64/mysql/   //-lmysqlclient表示链接到mysqlclient动态库, -L 表示寻找动态库链接的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值