1】下载安装好mySQL环境

2】FDConnection1的设置

3】执行增删改SQL语句查询Select语句

4】客户端连接

5]长文本类型,及SQLITE导出,导入到MySQL

6】遇到过的问题及解决


1】下载安装好mySQL环境,注意32位/64位。本篇为32位

mysql32位下载链接: https://pan.baidu.com/s/1hVS_vbBQUAnMakDdlN07ZQ 提取码: wx44

MYSQL新手入门篇


 windows版本,32位下载32位的,64位下载64位的

1、下载

MySQL Community Server 5.7.16 
http://dev.mysql.com/downloads/mysql/

2、解压

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64

3、初始化

MySQL解压后的 bin 目录下有一大堆的可执行文件,执行如下命令初始化数据:

cd c:\mysql-5.7.16-winx64\bin 
mysqld --initialize-insecure

4、启动MySQL服务

执行命令从而启动MySQL服务,有时候 要启动两次mysqld

# 进入可执行文件目录
cd c:\mysql-5.7.16-winx64\bin
 
# 启动MySQL服务
mysqld

5、启动MySQL客户端并连接MySQL服务

由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码

# 进入可执行文件目录
cd c:\mysql-5.7.16-winx64\bin
 
# 连接MySQL服务器
mysql -u root -p
 
# 提示请输入密码,直接回车

输入回车,见下图表示安装成功:

到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述4、5步骤即可。但是,在4、5步骤中重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。

 添加环境变量

将MySQL可执行文件添加到环境变量中,从而执行执行命令即可

【右键计算机】-->【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
 
如:
C:\mysql-5.7.16-winx64\bin;

如此一来,以后再启动服务并连接时,仅需:

# 启动MySQL服务,在终端输入
mysqld
 
# 连接MySQL服务,在终端输入:
mysql -u root -p

. 将MySQL服务制作成windows服务

上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:

# 制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
 
# 移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令: 

# 启动MySQL服务
net start mysql
 
# 关闭MySQL服务
net stop mysql

 用户命令行,修改密码增加DataBase,db1


cd c:\mysql-5.7\bin
mysqld --install
mysqld --initialize --console//有默认密码,记得保存
net start mysql

mysql -u root -p //输入密码
     alter user 'root'@'localhost' identified by 'root';

     create database db1;

use db1;

 show tables;

create table tb1 (id int);

insert into tb1 values (2);

Path路径系统变量加入c:\mysql-5.7\bin


 将libmysql.dll拷到C:\Windows\System32

然后重启Delphi10.3

 确保MySQL服务启动,也可以命令行启动MySQL服务            net start mysql


 2】FDConnection1的设置

 FDConnection1.LoginPrompt: = False;//不提示登录窗口。


 3】执行,增insert,改update ,删除delete 语句SQL语句

procedure TForm3.Button1Click(Sender: TObject);
begin
 FDConnection1.ExecSQL('insert into tb1 values(5);');
  button1.Caption := FDConnection1.ExecSQLScalar('select MAX(id) from tb1');
end;

    3-2】执行select 查询语句,要新加FDQuery1,设置FDQuery1的Connection为FDConnection1

FDQuery1.Open('select * from tb1 where id>5');

4】客户端连接

https://www.cnblogs.com/happyhills/p/3723842.html

1、SQLConnection1: TSQLConnection
ConnectionName = 'MYSQLCONNECTION'
DriverName = 'MySQL'
GetDriverFunc = 'getSQLDriverMYSQL'
LibraryName = 'dbxmys.dll'
LoginPrompt = False
Params.Strings = (
'HostName=localhost'
'Database=mysqldb'
'User_Name=root'
'Password=pswd'
'MaxBlobSize=-1

ServerCharSet=utf8')
VendorLib = 'libmysql.dll'
Connected = True

2、 SQLTable1: TSQLTable
GetMetadata = False
MaxBlobSize = -1
SQLConnection = SQLConnection1
TableName = 'human'


3、DataSource1: TDataSource
DataSet = ClientDataSet1

4、DataSetProvider1: TDataSetProvider
DataSet = SQLTable1

5、ClientDataSet1: TClientDataSet
Active = True
ProviderName = 'DataSetProvider1'


6、DBGrid1: TDBGrid
DataSource = DataSource1

7、 DBNavigator1: TDBNavigator
 DataSource = DataSource1
 

8、Button1: TButton
Caption = 'Button1'
OnClick = Button1Click
需要的控件
procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientDataSet1.ApplyUpdates(0);//更新
end;

最后找到两个库文件一同发布就可以了。

LibraryName = 'dbxmys.dll'
VendorLib = 'libmysql.dll'


5]长文本类型,及SQLITE导出,导入到MySQL,采用Navicat for SQLite,Navicat for MySQL

 

一般利用Excel的xlsx格式作为中转,Navicat for SQLite->xlsx->Navicat for MySQL

  

L


6】遇到过的问题及解决

[FireDAC][Phys][MySQL]-306. Command [FDQuery1] text must be not empty.
-----------------------------------------------------------
FDQuery1没有添加SQL语句
-------------------------------------------------

[FireDAC][Phys][MySQL] Unknown MySQL server host '<LOCAL>' (11004).
---------------------------
用127.0.0.1代替
---------------------------

-----------------------------------------------------------------------------------------------

[FireDAC][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll,
libmariadb or libmysqld.dll]. 找不到指定的模块。
Hint: check it is in the PATH or application EXE directories, and has x86
bitness..
---------------------------
在使用Delphi  FIREDAC连接mysql时,出现[FireDac][Phys][MySQL]-314.
Cannot load vendor library [libmysql.dll orlibmysqlld.dll]这个问题

-----------------------原因-------------------------------------------------------------------------

使用的系统是win7 64位,Mysql是64位,而c++builder是32位的。

解决办法

在网上下载一个32位的libmysql.dll,放在C:\Windows\SysWOW64就可以了

https://blog.csdn.net/winniezhang/article/details/103726647


mysqld.exe - 系统错误
---------------------------
无法启动此程序,因为计算机中丢失 MSVCR120.dll。尝试重新安装该程序以解决此问题。
无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试重新安装该程序以解决此问题。
---------------------------
C盘里查找这两个DLL文件,其他应用程序已自带