Code前端首页关于Code前端联系我们

编译mysql插件,下载mysql插件

terry 2年前 (2023-09-30) 阅读数 40 #Mysql
文章标签 Mysql

本文内容列表:

  • 1.emqtt mysql插件有什么用?
  • 2. PHP7中如何安装mysql扩展
  • 3.如何编写MySQL全文索引插件
  • 4、Windows下编译或调试MySQL
  • 5、Linux上编译安装Mysql
  • 6.高分!如果要自定义mysql插件,只能在Linux上完成吗?或者给出一个自定义mysql插件的完整示例。

emqtt mysql 插件有什么用

emqtt 服务器的介绍在官网有说明。我到现在还没仔细看,不过里面有详细介绍如何在不同操作系统上实现,包括编译方法。源码仓库在这里。

首先我们弄清楚emqtt服务器和abc-auth-mysql插件的部署位置。我们本地编译emqtt服务器;

根据 emqtt 服务器上 Makefile 的指示,编译过程中会引入 abc-auth-mysql 插件。源代码已编译,但源代码位置放置在外部git存储库中;

如何在PHP7中安装mysql扩展

?目录

cd mysql-45881bd/

#用phpize初始化,我的phpize在/opt/目录下

/opt/php/bin/phpize

#编译mysql扩展,使用mysql原生驱动作为mysql链接库

./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd

make make install

5、编辑php.ini文件,将mysql.so复制到php.ini的extension_dir下,然后在php.ini中添加extension=mysql.so

6.启动php

写一个MySQL全文索引插件

创建表索引( id int, name varchar(20), 全文索引text_index(name)); fulltext index是全文索引的描述,text_index(name)是索引名称和创建索引的字段。

在 Windows 上编译或调试 MySQL

只需使用 vs code 即可。

Visual Studio Code

Visual Studio Code(简称VS Code)是微软开发的开源文本编辑器,支持Windows、Linux和macOS操作系统。它支持调试,内置Git版本控制功能,还具有代码完成(类似于IntelliSense)、代码片段、代码重构等开发环境功能。编辑器支持用户自定义配置,例如更改主题颜色、键盘快捷键、编辑器属性和其他参数。它还支持扩展,并在编辑器中具有内置的扩展管理功能。

安装 LLDB

LLDB 是 LLVM 编译器的一部分。推荐使用Homebrew安装LLVM工具集。不建议使用系统自带的LLDB。安装前必须创建证书,否则无法安装。步骤如下:

创建完成后,开始安装LLVM

brew install llvm --with-python@2 --with-lldb

安装插件

VS Code自带调试功能。这里我推荐使用LLDB Debugger插件。

接下来,配置项目的调试参数。

配置调试参数

使用VS Code打开MySQL源码文件夹,选择侧边栏的debug栏,添加配置,program输入程序路径进行调试,这里选择你编译的mysqld路径,args输入程序的启动地点。所需的参数通常在 mysqld 配置文件中指定。现在配置完成了,是不是很简单呢?

开始调试

单击开始按钮。如果启动后没有设置断点,mysqld将正常启动。如果断点被触发,会显示如下图。

整个调试窗口实际上分为六个部分,所有调试操作都在这里完成:

1:显示变量信息

2:设置目标变量

3:显示调用堆栈信息

4:设置断点信息,也可以在代码行号之前设置断点

5:代码显示区域,上面有调试按钮,包括继续/步过/步入/步出/重启/停止

6 :调试终端输入输出区域

断点设置

在代码行号前单击即可对该行为设置断点,或者根据条件设置断点。以ConditionalBreakpoint设置为例。当程序启动时,它会根据你设置的条件表达式来决定是否触发断点。

条件断点 该方法用于当目标变量达到某个条件时触发断点,并跳过其余部分继续执行。例如,当设置一个变量等于目标表的名称时会触发断点,并跳过其他表。相对函数名断点省去了很多手动跳过操作。

远程错误

如果你想在远程Linux服务器上调试MySQL,上面的方法不适合。这种情况下就需要远程调试。 lldb和gdb都支持远程调试。这里我们以lldb为例。

需要先在远程主机上安装lldb,使用yum安装,源地址在这里

remote$ yum install -y llvm-toolset-7

安装完成后启动lldb - server

remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen "*:9191" --server

然后在 US Code 调试中添加新的配置项界面。

{

"类型":"lldb",

"请求":"附加",

"名称":"远程附加",

"程序":"~/mysql5626/ usr/local/mysql/bin/mysqld",

"pid 'target_pid',

"initCommands": [

"平台选择远程linux",

"平台连接 connect:/ /remote_host :9191"

],

"来源地图": {

"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26": "/Users/hongbin/workbench/mysql-server"

}

},

程序:这个机器还必须复制并加载目标程序的副本。

pid:填写远程主机的mysqld进程ID

sourceMap:填写mysqld编译的代码路径与本地代码库路径的映射关系,以便调试时可以将代码与程序进行比较。一并查看

注意:调试前别忘了将代码切换到与目标程序版本一致的分支

在Linux上编译安装Mysql

不同的Linux版本,安装不同版本的mysql的方法也不同。下面介绍在 CentOS 6.5 下编译安装 MySQL 5.6.16 的方法:

1. 准备工作

1.yum 安装各个依赖包

[ root@WebServer ~]# yum -y install gcc gcc- devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bison bison-devel 解压

2.创建新的 mysql 组和用户

[root@WebServer ~]# groupadd mysql

[root@WebServer ~]# useradd -g mysql -s /sbin/nologin mysql

3.目录准备

[root@WebServer ~]# mkdir -p /webserver/mysql/etc

[root@WebServer ~]# mkdir -p /webserver/mysql/data

[root@WebServer ~]# mkdir -p /webserver/mysql/tmp

[root@WebServer ~]# chown -R mysql.mysql /webserver/mysql

4.解压MySQL并进入安装文件夹

[root@WebServer ~]# tar zxvf mysql-5.6.16.tar.gz

[root@WebServer ~]# cd mysql-5.6.16

2.编译并安装

1。编译MySQL

[root@WebServer mysql-5.6.16]# cmake -DCMAKE_INSTALL_PREFIX=/webserver/mysql \

-DSYSCONFDIR=/webserver/mysql/etc \

-DMYSQL_DATADIR=/webserver/mysql/data \ -dmysql_tcp_port = 3306 \

-DMYSQL_UNIX_ADDR =/WEBSERVER/MYSQL/MYSQL/TMP/MYSQLD.SOCK \

-DMYSQL_USER = -DMYSQL_USER = mysql = mysql \ dextra_charset \

-DWITH_SSL=系统 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DENABLE_DOWNLOADS=1

2. 如果出现以下错误

需要

[root@WebServer mysql-5.6.16]# cd source_downloads/

[root@WebServer source_downloads]# unzip gmock-1.6.0.zip

[root@WebServer source_downloads] # ./configure

[root@WebServer source_downloads]# make

[root@WebServer source_downloads]# cd ..

然后删除mysql-5.6.16文件夹中的CMakeCache.txt,再次使用cmake编译安装

2。安装

[root@WebServer mysql-5.6.16]# make make install

编译过程会花费比较长的时间,编译时间取决于机器的性能

3。 MySQL 配置

1。链接客户端库文件(暂不可用)如果执行这一步,编译PHP时会提示找不到MySQL文件)

[root@WebServer mysql-5.6.16]# ln -s / webserver/mysql/lib/libmysqlclient.so.18 /usr/lib64 /libmysqlclient.so.18

ps:我使用的是 64 位 CentOS。如果您使用的是 32 位,请使用 ln -s /webserver/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so .18

2。 MySQL启动文件配置

[root@WebServer mysql-5.6.16]# cp support-files/mysql.server /etc/init.d/mysqld

[root@WebServer mysql -5.6.16]# chmod + x /etc/init.d/mysqld

[root@WebServer mysql-5.6.16]# vim /etc/init.d/mysqld

basedir=/webserver/mysql

datadir=/webserver/mysql /data

//改变

3上面两行的路径。设置 MySQL 配置文件

[root@WebServer mysql-5.6.16]# cp support-files/my-default.cnf /webserver/mysql/etc/my.cnf

[root@WebServer mysql-5.6 。 16]# rm -rf /etc/my.cnf

[root@WebServer mysql-5.6 .16]# ln -s /webserver/mysql/etc/my.cnf /etc/my.cnf

4.初始化数据库

[root@WebServer mysql-5.6.16]# cd /webserver/mysql

[root@WebServer mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/webserver/mysql --datadir=/webserver /mysql/数据

5。链接MySQL命令(这一步对我们来说方便多了,命令的路径不用写,也可以写在/etc/profile的PATH里)

[root@WebServer ~ ] # cd /usr/sbin

[root@WebServer sbin]# ln -s /webserver/mysql/bin/* .

6。启动 MySQL 并将其设置为开机启动

[root@WebServer sbin]# service mysqld start ;chkconfig mysqld on

启动 MySQL.. 祝你好运!

7。设置MySQL root用户密码

[root@WebServer ~]# mysqladmin -u root-password 123456

这里设置MySQL root密码为123456,强烈不建议设置上设置的数据库密码一个简单的

8。删除用户密码为空的用户

[root@WebServer ~]# mysql -u root -p

输入密码:

mysql use mysql;

mysql选择主机、用户、用户密码;

+----------+--------+-------- ------------------- - ---------------+

|主持人|用户 |密码 |

+----------+-----+---------------------------- -- ---- -------------+

|本地主机 |胡萝卜| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

|网络服务器|胡萝卜| |网络服务器| | |

+------------+--------+------------ ---- -- ----------- ---+

集合中的6行(0.00秒)

mysql从密码=“”的用户中删除;

查询正常,5行受影响(0.00秒)

mysql刷新权限;

查询OK,涉及0行(0.00秒)

mysql选择主机,用户,用户密码;

+---- -------+-----+---------------------------- -- ------ --------+

|主持人|用户|密码 |

+------------+-----+-------- ------------------ - --------------+

|本地主机 |胡萝卜| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

+------------+-----+---------------- --------- -- -------------+

1 行集合(0.00 秒)

mysql 退出;

完成。

高分!如果要自定义mysql插件,只能在Linux上完成吗?或者给出一个完整的自定义mysql插件的小例子

如果要自定义插件,一般在编译安装时指定

示例:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA _CHARSETS= all -DSYSCON FDIR=/etc make make install

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //主程序安装文件夹

-DDEFAULT_CHARSET=utf8 //默认字符集为utf8

-DDEFAULT_COLLATION= utf8_general_ci //字符集默认排序规则

-DWITH_EXTRA_CHARSETS=all //安装所有字符集

-DSYSCONFDIR=/etc //配置文件存放文件夹

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门