MYSQL库和ACL框架中MYSQL类型定义冲突的问题

  • Ubuntu中出现MYSQL类型重定义的解决方法
  • 先回顾一下Ubuntu中C++ACL框架的安装方法
  • 回顾一下MySQL安装方法
  • 编译时冲突原因
  • 卸载MySQL 8.x版本并安装MySQL5.x版本的方式
  • 先卸载MySQL 8.x
  • 再安装MySQL 5.x


Ubuntu中出现MYSQL类型重定义的解决方法

先回顾一下Ubuntu中C++ACL框架的安装方法

UbuntuC++安装ACL是为了项目开发的时候方便框架调用比自己实现要方便很多,学过Java的小伙伴肯定了解

https://github.com/acl-dev/acl -> ~/Projects/acl-master.zip
 cd ~/Projects
 unzip acl-master.zip
 cd acl-master
 make
 sudo make install
 sudo mkdir -p /usr/include/acl-lib
 sudo cp -rf ./dist/include/* /usr/include/acl-lib
 sudo cp -rf ./dist/lib/linux64/* /usr/lib

回顾一下MySQL安装方法

sudo apt-get install mysql-server
数据库root用户的口令:123456
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

一般这里如果安装是MySQL8.x的版本就会有类型冲突
终端窗口输入:mysql -V 查看版本 打来MySQL来看版本

编译时冲突原因

如何迅速切换本地mysql版本_mysql


我的是Ubuntu16系统也是deepin一样的解决方式,一般这里如果安装是MySQL 8.x的版本就会和ACL有类型冲突

终端窗口输入:mysql -V 查看版本 或者登上MySQL来看版本,是MYSQL8.x的就只有把MYSQL8.x卸载了,安装5.x的版本,或者等ACL库更新也许作者会解决这个问题。 ACL的作者是郑树新(微博:http://weibo.com/zsxxsz)

换个MySQL5.x的版本再次编译一下,就不会出现MySQL库和ACL框架都定义了名为MYSQL这个数据类型而导致冲突报错了。
改MySQL或者ACL的库函数命名不现实,只有这样降低版本了。

卸载MySQL 8.x版本并安装MySQL5.x版本的方式

先卸载MySQL 8.x

终端窗口执行以下代码
sudo apt-get autoremove --purge mysql-server

弹出界面

如何迅速切换本地mysql版本_linux_02


选是即可卸载掉MySQL 8.x的版本

也可以参照其他的文档博客卸载掉,不同的版本和系统可能卸载的方式不一样

再清清理残留数据 终端执行以下代码
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P

再安装MySQL 5.x

这时候用sudo apt-get install mysql-server 安装的话可能还是MySQL8.x的版本
可以试试用API的安装方式

通过APT方式安装
说明:此种方式完全参考官方提供的教程链接: https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ 下载官方提供的mysql-apt-config.deb包进行APT源设置,下载地址:https://dev.mysql.com/downloads/repo/apt/

不想登录oracle账号的这是我的百度云链接 链接:https://pan.baidu.com/s/1FopERWvaJNBIjIh9fiL7KQ 提取码:xx1i

Ubuntu中有了这个deb格式的安装包后

在终端中执行 sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb 安装这个包

如图:

如何迅速切换本地mysql版本_数据库_03

先选下面的选项

如何迅速切换本地mysql版本_linux_04


再选择一下的5.7版本的MySQL,如图:

如何迅速切换本地mysql版本_mysql_05


再回车确定,退出到一开始选择界面选OK回车退出,就设置好了,这时候再终端中执行

sudo apt-get install mysql-server 就是默认安装的MySQL5.x版本的了。mysql -V 查看一下 就是MySQL5.7的版本了。

如何迅速切换本地mysql版本_如何迅速切换本地mysql版本_06

后续的MySQL配置
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev


到这里就OK了。