mysql使用结巴语句_SqlJieba: MySQL 结巴中文分词插件 SqlJieba  『关键词』 MySQL, 插件(Plugin), 中文分词, 结巴分词(Jieba), 全文检索(Full...

SqlJieba

author-@yanyiwu-blue.svg?style=flat

license-MIT-yellow.svg?style=flat

200f7354fc9f32dcd27102a6c9a60c27.png

Introduction

Mysql Full-Text Parser Plugin

Usage

mkdir ~/local

cd ~/local

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

tar xzf boost_1_59_0.tar.gz

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz

tar zxvf mysql-5.7.11.tar.gz

cd mysql-5.7.11

mkdir build

cd build

useradd -M -s /sbin/nologin mysql

sudo mkdir -p /data/mysql

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql \

-DDOWNLOAD_BOOST=1 \ #从MySQL 5.7.5开始Boost库是必需的

-DWITH_BOOST=../boost_1_59_0 \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_EMBEDDED_SERVER=1

make -j `grep processor /proc/cpuinfo | wc -l`

sudo make install

cd ../plugin/fulltext

git clone git@github.com:yanyiwu/sqljieba.git

cd sqljieba

make

sudo cp libsqljieba.so /usr/local/mysql/lib/plugin/

sudo cp -r ./dict /usr/share

cat > /etc/my.cnf << EOF

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set = utf8mb4

[mysqld]

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

pid-file = /data/mysql/mysql.pid

user = mysql

bind-address = 0.0.0.0

server-id = 1

init-connect = 'SET NAMES utf8mb4'

character-set-server = utf8mb4

#skip-name-resolve

#skip-networking

back_log = 300

max_connections = 1000

max_connect_errors = 6000

open_files_limit = 65535

table_open_cache = 128

max_allowed_packet = 4M

binlog_cache_size = 1M

max_heap_table_size = 8M

tmp_table_size = 16M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1

query_cache_size = 8M

query_cache_limit = 2M

ft_min_word_len = 4

log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30

log_error = /data/mysql/mysql-error.log

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0

explicit_defaults_for_timestamp

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

interactive_timeout = 28800

wait_timeout = 28800

[mysqldump]

quick

max_allowed_packet = 16M

[myisamchk]

key_buffer_size = 8M

sort_buffer_size = 8M

read_buffer = 4M

write_buffer = 4M

EOF

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

dbrootpwd=yanyiwu

/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"$dbrootpwd\" with grant option;"

/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"$dbrootpwd\" with grant option;"

login:

/usr/local/mysql/bin/mysql -u root -pyanyiwu

install plugin in client command:

install plugin sqljieba soname 'libsqljieba.so';

if errors happen, using the following command to check if the .so file exists

find /usr/local/mysql -name "libsqljieba.so"

if it exists, it should be there:

/usr/local/mysql/lib/plugin/libsqljieba.so

otherwise, you need to redo the process above and check what happened.

if everything ok, now you can try the following sql:

mysql> create database sqljieba;

Query OK, 1 row affected (0.04 sec)

mysql> use sqljieba;

Database changed

mysql> CREATE TABLE t (c VARCHAR(255), FULLTEXT (c) WITH PARSER sqljieba ) ENGINE=MyISAM;

Query OK, 0 rows affected (0.08 sec)

mysql> INSERT INTO t VALUES

-> ('这是一个简单测试'),

-> ('上海 广州 北京'),

-> ('泰山 黄山 嵩山');

Query OK, 3 rows affected (0.06 sec)

Records: 3 Duplicates: 0 Warnings: 0

mysql> SELECT MATCH(c) AGAINST('上海') FROM t;

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

| MATCH(c) AGAINST('上海') |

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

| 0 |

| 0.5647933483123779 |

| 0 |

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

3 rows in set (0.04 sec)

Reference

Contact

Email: i@yanyiwu.com

QQ: 64162451

WeChat:

5a7d1b5c0d_yanyiwu_personal_qrcodes.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ‘caching_sha2_password’ 是 MySQL 8.0 版本引入的一种件,用于增强对用户密码的加密保护。在连接数据库时,如果发生 [tc_mysql::connect]: mysql_real_connect: authentication plugin 'caching_sha2_password' 错误,可能是以下两个原因之一: 1. MySQL 8.0 版本之前的客户端与 MySQL 8.0 版本以上的服务器进行连接时,由于默认加密件不匹配,导致认证失败。解决方法是升级客户端版本或为相应的用户更改默认的加密件。 2. MySQL 8.0 版本以上的服务器设置了默认使用 'caching_sha2_password' 件进行认证,但客户端版本较低,并不支持该件。解决方法是在服务器端修改用户的加密件为旧版本所支持的件,如 'mysql_native_password'。 在解决该错误时,可以采取以下步骤: 1. 升级客户端版本,确保与服务器兼容。 2. 在服务器端,找到相应用户并修改其加密件为旧版本所支持的件。 3. 如果连接仍然失败,可以尝试更新客户端的 MySQL 驱动程序,或使用其他不同版本的驱动程序。 总的来说,[tc_mysql::connect]: mysql_real_connect: authentication plugin 'caching_sha2_password' 错误是由于客户端与服务器的加密件不匹配所致,需要升级客户端版本或修改服务器端的用户加密件来解决。 ### 回答2: 这个错误是由于MySQL数据库连接时使用了"authentication plugin 'caching_sha2_password'",但是相应的驱动程序不支持此件所导致的。 为了解决这个问题,有以下几种方法: 1. 更新驱动程序:查找并下载最新版本的MySQL驱动程序。新版本的驱动程序通常会支持新的件。安装更新的驱动程序后,再次尝试连接数据库。 2. 修改MySQL用户的身份验证件:如果使用的是MySQL 5.7以上版本,可以尝试将用户的身份验证件修改为旧的件,例如'mysql_native_password'。这可以通过修改MySQL用户的身份验证件选项以及刷新权限来完成。 3. 修改MySQL服务配置:在MySQL配置文件中,可以尝试禁用所有新的身份验证件,只使用旧的件。找到MySQL配置文件(通常位于/etc/mysql目录下),找到并编辑my.cnf或my.ini文件,在[mysqld]部分添加或修改一行如下配置:default_authentication_plugin = mysql_native_password。保存文件后,重启MySQL服务。 以上是解决"tc_mysql::connect: mysql_real_connect: authentication plugin 'caching_sha2_password'"错误的几种方法。根据具体情况选择合适的方法来解决问题。 ### 回答3: 认证件 'caching_sha2_password' 导致 MySQL 连接错误的可能原因有以下几点。 首先,该错误可能是因为 MySQL 服务器使用了不同的身份验证件,而 PHP 中的 MySQL 扩展不支持该件。在较新版本的 MySQL 中,默认身份验证件是 'caching_sha2_password',而较旧版本的 PHP MySQL 扩展只支持旧的身份验证件。 解决这个问题的一种方法是升级 PHP 版本,或者使用支持新身份验证件的第三方 MySQL 扩展库,例如 MySQLi 或 PDO。这些扩展库兼容较新版本的 MySQL,并能正确地处理 'caching_sha2_password' 件。 另外,该错误也可能是由于 MySQL 服务器未正确配置所致。您可以检查 MySQL 的配置文件(通常是 my.cnf 或 my.ini)中的设置。确保在 [mysqld] 部分中,有一个正确的默认身份验证件设置,如下所示: default_authentication_plugin = mysql_native_password 如果该行不存在,或者设置为其他非 'mysql_native_password' 件,可尝试添加或修改该设置并重启 MySQL 服务器。 最后,如果您无权更改 MySQL 服务器的配置或升级 PHP 版本,同时又无法使用其他支持新身份验证件的扩展库,您可以联系服务器管理员或开发者,以获取进一步的帮助和解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值