编译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前端网发表,如需转载,请注明页面地址。
code前端网
