首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同目录下运行MySQL

在不同目录下运行MySQL
EN

Stack Overflow用户
提问于 2021-10-05 09:14:30
回答 1查看 255关注 0票数 0

目标:

我试图在我的工作服务器机器上运行mysql。但是由于管理员没有在通常的默认安装路径中安装它,所以失败了。我怎样才能让它起作用?

事实:

MySQL安装在:/opt/mysql/10.1.16/下面。

代码语言:javascript
复制
$> ls -1 /opt/mysql/10.1.16/
bin
COPYING
COPYING.LESSER
COPYING.thirdparty
CREDITS
data
EXCEPTIONS-CLIENT
include
INSTALL-BINARY
lib
man
mysql-test
README
README-wsrep
scripts
share
sql-bench
support-files

但是,当我想从脚本运行mysql时,我会这样做:

代码语言:javascript
复制
export LIBMYSQL_PLUGIN_DIR="/opt/mysql/10.1.16/lib/plugin"
export LD_LIBRARY_PATH="/opt/mysql/10.1.16/lib"
export LD_RUN_PATH="/opt/mysql/10.1.16/lib"
export PATH="/opt/mysql/10.1.16/bin:/home/xxxxxxxx/bin:/usr/local/bin:/usr/bin:/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin"

/opt/mysql/10.1.16/bin/mysql -C --no-beep --line-numbers --protocol=TCP --host="${DB_HOSTNAME}" --port="${DB_PORT}" --user="${DB_USER}" --database "${DB_SCHEMA}" -o --delimiter ','

使用所有的DB_xxxx代码设置,我得到以下错误:

ERROR 2059 (HY000): Authentication plugin 'dialog' cannot be loaded: /usr/local/mysql/lib/plugin/dialog.so: cannot open shared object file: No such file or directory

我查看了正式的文档页面:https://dev.mysql.com/doc/refman/8.0/en/environment-variables.html,唯一提到插件的地方就是检查是否LIBMYSQL_PLUGIN_DIR,这似乎很好,因为:

代码语言:javascript
复制
$> echo "${LIBMYSQL_PLUGIN_DIR}"
/opt/mysql/10.1.16/lib/plugin

$> ls -la /opt/mysql/10.1.16/lib/plugin
-rwxr-xr-x 1 mysql dba    17382 Sep 13  2016 adt_null.so
-rwxr-xr-x 1 mysql dba    12462 Sep 13  2016 auth_0x0100.so
-rwxr-xr-x 1 mysql dba    33039 Sep 13  2016 auth_gssapi_client.so
-rwxr-xr-x 1 mysql dba    80774 Sep 13  2016 auth_gssapi.so
-rwxr-xr-x 1 mysql dba    18007 Sep 13  2016 auth_pam.so
-rwxr-xr-x 1 mysql dba    13028 Sep 13  2016 auth_socket.so
-rwxr-xr-x 1 mysql dba    23521 Sep 13  2016 auth_test_plugin.so
-rw-r--r-- 1 mysql dba      227 Sep 13  2016 daemon_example.ini
-rwxr-xr-x 1 mysql dba    15267 Sep 13  2016 debug_key_management.so
-rwxr-xr-x 1 mysql dba    14975 Sep 13  2016 dialog_examples.so
-rwxr-xr-x 1 mysql dba    39102 Sep 13  2016 dialog.so
-rwxr-xr-x 1 mysql dba    35337 Sep 13  2016 example_key_management.so
-rwxr-xr-x 1 mysql dba    67516 Sep 13  2016 file_key_management.so
-rwxr-xr-x 1 mysql dba   534847 Sep 13  2016 ha_archive.so
-rwxr-xr-x 1 mysql dba   326244 Sep 13  2016 ha_blackhole.so
-rwxr-xr-x 1 mysql dba  6315641 Sep 13  2016 ha_connect.so
-rwxr-xr-x 1 mysql dba   270829 Sep 13  2016 ha_example.so
-rwxr-xr-x 1 mysql dba   408688 Sep 13  2016 ha_federated.so
-rwxr-xr-x 1 mysql dba   658050 Sep 13  2016 ha_federatedx.so
-rwxr-xr-x 1 mysql dba 17067973 Sep 13  2016 ha_innodb.so
-rwxr-xr-x 1 mysql dba 13007344 Sep 13  2016 ha_mroonga.so
-rwxr-xr-x 1 mysql dba  1586135 Sep 13  2016 handlersocket.so
-rwxr-xr-x 1 mysql dba  1687004 Sep 13  2016 ha_oqgraph.so
-rwxr-xr-x 1 mysql dba   745005 Sep 13  2016 ha_sphinx.so
-rwxr-xr-x 1 mysql dba  5150095 Sep 13  2016 ha_spider.so
-rwxr-xr-x 1 mysql dba   226800 Sep 13  2016 ha_test_sql_discovery.so
-rwxr-xr-x 1 mysql dba    35898 Sep 13  2016 libdaemon_example.so
-rwxr-xr-x 1 mysql dba   131020 Sep 13  2016 locales.so
-rwxr-xr-x 1 mysql dba   221483 Sep 13  2016 metadata_lock_info.so
-rwxr-xr-x 1 mysql dba    18211 Sep 13  2016 mypluglib.so
-rwxr-xr-x 1 mysql dba    16382 Sep 13  2016 mysql_clear_password.so
-rwxr-xr-x 1 mysql dba    18751 Sep 13  2016 qa_auth_client.so
-rwxr-xr-x 1 mysql dba    24478 Sep 13  2016 qa_auth_interface.so
-rwxr-xr-x 1 mysql dba    13542 Sep 13  2016 qa_auth_server.so
-rwxr-xr-x 1 mysql dba   229059 Sep 13  2016 query_cache_info.so
-rwxr-xr-x 1 mysql dba   286720 Sep 13  2016 query_response_time.so
-rwxr-xr-x 1 mysql dba   534415 Sep 13  2016 semisync_master.so
-rwxr-xr-x 1 mysql dba   445144 Sep 13  2016 semisync_slave.so
-rwxr-xr-x 1 mysql dba   175928 Sep 13  2016 server_audit.so
-rwxr-xr-x 1 mysql dba    32295 Sep 13  2016 simple_password_check.so
-rwxr-xr-x 1 mysql dba    19846 Sep 13  2016 sql_errlog.so
-rwxr-xr-x 1 mysql dba   218688 Sep 13  2016 wsrep_info.so

所有库都有执行权限,它们都在这里,但是MYSQL仍然试图在默认路径/usr/local/mysql/lib/plugin/中搜索。当然,在我们的机器上,这条路是不存在的。

问题:

是否有另一种具体要求mysql为特定目录加载插件的选项/方法?

备注:

我找到了一些关于错误ERROR 2059 (HY000): Authentication plugin 'dialog' cannot be loaded: /usr/local/mysql/lib/plugin/dialog.so: cannot open shared object file: No such file or directory的链接,但是解决方案都是:

can't)

  • Create
  • 卸载mysql并重新安装它(我
  • 目录或符号链接(两者都不能))
  • 使用--enable-cleartext-plugin选项(它什么也不做,我认为它在我的例子中没有关联)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-06 08:42:59

所以我想我明白原因了。

设置LIBMYSQL_PLUGIN_DIR:

export LIBMYSQL_PLUGIN_DIR="/opt/mysql/10.1.16/lib/plugin"

在某种程度上没有被阅读或考虑。

但是,直接将选项--plugin-dir="${LIBMYSQL_PLUGIN_DIR}"添加到二进制文件中将使其工作。

所以正确的答案是:

代码语言:javascript
复制
/opt/mysql/10.1.16/bin/mysql --plugin-dir="${LIBMYSQL_PLUGIN_DIR}" -C --no-beep --line-numbers --protocol=TCP --host="${DB_HOSTNAME}" --port="${DB_PORT}" --user="${DB_USER}" --database "${DB_SCHEMA}" -o --delimiter ','

为什么不读env变量,这是一个谜。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69447803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档