mysql mysql存储过程连接查询远程数据库 mysqli_connect 远程地址 1270013306 root 123456 mysqli_connect 报错 FUNCTION lvmhuatmysqli_connect does not exist 怎么解决
在MySQL中,使用mysqli_connect()函数连接远程数据库是错误的方法。mysqli_connect()函数是PHP中用于连接MySQL数据库的函数,而不是在MySQL存储过程中使用的函数。
在MySQL存储过程中连接远程数据库,可以使用FEDERATED存储引擎或者通过建立连接字符串使用CONNECT语句。
-
使用FEDERATED存储引擎:
- 首先,确保MySQL服务器已启用FEDERATED存储引擎。可以通过在my.cnf配置文件中的[mysqld]部分添加以下行来启用它:
federated - 创建一个FEDERATED表,用于连接远程数据库。例如,假设远程数据库的地址是192.168.1.100,用户名是root,密码是123456,数据库名是remote_db,可以使用以下语句创建FEDERATED表:
CREATE TABLE federated_table ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY (id) ) ENGINE=FEDERATED CONNECTION='mysql://root:123456@192.168.1.100:3306/remote_db/table_name'; - 在存储过程中可以直接使用FEDERATED表进行查询。
- 首先,确保MySQL服务器已启用FEDERATED存储引擎。可以通过在my.cnf配置文件中的[mysqld]部分添加以下行来启用它:
-
使用CONNECT语句:
- 首先,确保MySQL服务器已启用CONNECT存储引擎。可以通过在my.cnf配置文件中的[mysqld]部分添加以下行来启用它:
plugin-load=connect.so - 在存储过程中可以使用CONNECT语句来连接远程数据库,并进行查询。例如,假设远程数据库的地址是192.168.1.100,用户名是root,密码是123456,数据库名是remote_db,可以使用以下语句连接远程数据库并进行查询:
SET @connstr = 'server=192.168.1.100;uid=root;pwd=123456;database=remote_db'; SET @sql = 'SELECT * FROM table_name'; INSERT INTO table_name SELECT * FROM connect(@connstr, @sql);
- 首先,确保MySQL服务器已启用CONNECT存储引擎。可以通过在my.cnf配置文件中的[mysqld]部分添加以下行来启用它:
请根据具体情况选择适合的方法来连接远程数据库,并进行相应的操作
原文地址: https://www.cveoy.top/t/topic/hJ6x 著作权归作者所有。请勿转载和采集!