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

MySQL存储过程连接远程数据库:FEDERATED引擎和CONNECT语句

原文地址: https://www.cveoy.top/t/topic/ptbK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录