delphi怎样连接远程mysql数据库

2024-12-28 11:12:11
推荐回答(2个)
回答1:

使用时注意将libmysql.dll拷贝到当前目录或系统目录(98:system,NT:system32)下,并保证您的3306端口与远程服务器是相通的。

源程序:
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, DB, SqlExpr, StdCtrls, ComCtrls, FMTBcd, Grids,
DBGrids, Provider, DBClient, DBLocal, DBLocalS, DBTables;

type
TForm1 = class(TForm)
SQLConnection: TSQLConnection;
StatusBar1: TStatusBar;
Label1: TLabel;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label2: TLabel;
Password: TEdit;
User_Name: TEdit;
HostName: TEdit;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
GroupBox2: TGroupBox;
Label5: TLabel;
ESQL: TEdit;
Label6: TLabel;
Database: TEdit;
ButtonGo: TButton;
SQLClientDataSet: TSQLClientDataSet;
procedure Button1Click(Sender: TObject);
procedure ButtonGoClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
with SQLConnection do
begin
Close;
Params.Values['HostName']:=HostName.Text;
Params.Values['UserName']:=User_Name.Text;
Params.Values['Password']:=Password.Text;
Params.Values['Database']:=Database.Text;
try
Connected:=True;
Statusbar1.Panels[0].Text:='Connect OK';
ButtonGo.Enabled:=True;
except
MessageDlg('Connect Error',mtError,[mbyes],0);
end;
end;

end;

procedure TForm1.ButtonGoClick(Sender: TObject);
begin
with SQLClientDataSet do
begin
Close;
CommandText:=ESQL.Text;
Open;
end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SQLConnection.Close;
end;

end.

怀疑你没有启动Mysql的服务?或者服务没有安装上?
尝试 net start mysql,如果服务不存在,请检查Mysql是否正常安装了?

晕~~~
net start mysql就是打开3306端口

回答2:

用ADO控件

用ADOconnection 直接就能连接到MYSQL

然后用 ADOQUERY ADOTABLE ADODATESET直接进行操作就行