Centos 7 配置和使用 MySql 8.0 以及API

1 检查环境

[root@centos7 opt]# rpm -qa | grep mariadb 

有则卸载 mariadb :(显示什么卸载什么)

[root@centos7 opt]# rpm -e --nodeps mariadb-libs
[root@centos7 opt]# rpm -e --nodeps mariadb-devel-5.5.65-1.el7.x86_64

2 安装依赖

[root@centos7 opt]# yum install libaio

有时候需要安装 net-tools 就是ifconfig 指令能否用,不能的话,就必须安装 net-tools
可以先用:yum search ifconfig 查询
安装:yum install net-tools.x86_64
测试:ifconfig

3 准备安装文件并安装

  • 可以先在 Windows下下载 地址
    操作系统选:Red Hat Enterprise Linux / Oracle Linux
    select OS版本选:Red Hat Enterprise Linux 7/Oracle Linux 7(x86,64-bit)
    RPM Bundle 下载

  • 下载完解压 并非全必要,需要的有:

mysql-community-client-8.0.32-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
mysql-community-common-8.0.32-1.el7.x86_64.rpm
mysql-community-devel-8.0.32-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
mysql-community-libs-8.0.32-1.el7.x86_64.rpm
mysql-community-server-8.0.32-1.el7.x86_64.rpm
  • 使用xfpt 上传到CentOS上 (有些需要先安装有些需要安装,看安装提示),一下是默认安装
    安装命令:
 rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
 rpm -ivh 同理
  • 可以采用find / -name mysql* -print 查看mysql的相关目录
    (一般默认安装会在mysql文件名后加版本号所以用*匹配好些)

  • 默认安装的话
    data默认放在:/var/lib/mysql
    mysql默认安装在了:/usr/share/mysql-8.0

  • 关于 MySQL 的初始化和修改密码等 另外看教程(网上很多)

4 API 的说明

  • 注意要 API的话,必须安装mysql-community-devel-8.0.32-1.el7.x86_64.rpm 采有 mysql.h
  • 这个又必须先安装openssl-devel 命令为:yum install openssl-devel -y
  • 安装后,mysql.h 等头文件会默认安装在 /usr/include/mysql
  • 安装后,静态链接库和动态链接库/usr/lib64/mysql 文件下
  • 在环境变量中需要把mysql的库的目录的路径包含进来
    • 1).bash_profile推荐首选
      当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。在~目录下 ls -al 可以看到

第一步:打开.bash_profile文件【当前用户有效】

$ vim  ~/.bash_profile 

第二步:添加环境变量路径

// 这个环境变量$LD_LIBRARY_PATH就是专门正对于/lib的
LD_LIBRARY_PATH=/usr/lib64/mysql:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

第三步:执行下面命令更新或reboot重启电脑

//  修改完毕后必须执行下面命令更新或重启才能生效
$ source  ~/.bash_profile

第四步:查看是否设置成功

// 查看是否设置成功 
echo $LD_LIBRARY_PATH
  • 然后再 makefile 里面进行库路径说明,和对目标库的链接
    比如:
# mysql头文件存放的目录。
MYSQLINCL = -I/usr/include/mysql 
# mysql库文件存放的目录。
MYSQLLIB = -L/usr/lib64/mysql
# 需要链接的mysql库。(库名为libmysqlclient.so或.a)前面的操作符为-l
MYSQLLIBS = -lmysqlclient
# 操作选项
CFLAGS=-g -Wno-write-strings

all: 项目名A

项目A:
	g++ $(CFLAGS) 项目名A 源文件.cpp $(MYSQLINCL) $(MYSQLLIB) $(MYSQLLIBS) -lm -lc
# -lm 标准数学库, -lc 标准c语言库

API编译时出现的问题

  • (1) 使用 MySql 头文件的问题:(针对8.0以上版本)
    编译出现:错误:‘my_bool’不是一个类型名
    原因是8.0版本以前是有my_bool这个类型的,但是8.0以后被提出文件了
    在mysql8.0的官方Reference中提到:

The my_bool type was used before MySQL 8.0. As of MySQL 8.0, use the
bool or int C type instead.

所以按官方的方式是,可以采用 C 的bool 或 int 类型进行替换

5 Navicat 远程连接Linux mysql

1。需要先确保 mysql 数据库中的 user 表中的 user 和 host 字段有远程用户
一般是加入到 user :root ,host :“%” 这样任意主机都能连接
2。加入后需要对 'root'@'%' 进行mysql 的授权,要记住这个登录密码
以上两步的具体看:
https://blog.csdn.net/mxskymx/article/details/88765072
3。使用Navicat 再出现 2002 的问题,关闭防火墙
这一步具体看:
https://blog.csdn.net/m0_46100784/article/details/126882865
4。如还出现2002,就修改mysql的配置文件,在my.cnf 文件(mysql8.0 默认安装的话是在/etc文件下)中修改
bind-address=0.0.0.0(没有做这个字段就自己加),使用 netstat -ant 查看 3066 端口是否已经在listen 状态了。
具有看:
https://blog.csdn.net/axiaowua/article/details/109892564

你可能感兴趣的:(Linux,mysql,centos,linux)